c/c++ java programming languege
tyt2222008
定力如磐,行走无疆
展开
-
关于C语言的sizeof探秘
今晚跟D探讨了c程序的类型大小问题,有点收获,现在总结(并附带问题):1. 我们常说的“64位机”到底是指“64位寻址”(即地址总线宽度为64bit)还是说数据总线的宽度为64bit?2. 有c语言中,char 类型占1 个byte, int 占 4个byte, long 和 float 也是4个byte, double 占8个 byte, 而指针,无论是什么类型的指针,都只占4 个byte(4*8=32bit), 因为指针是存放地址,而32位机中,地址宽度为32位,所以指针的宽度是相应的32bit.3.原创 2010-07-01 22:07:00 · 656 阅读 · 0 评论 -
java 日志的一种写法(转)
<br />public void writeLog(String logFileName, String content) { try { /* 日志文件大小最大为100KB */ File log = new File(logFileName); if (log.length() > 102400) { if (log.delete()) logger.info("日志文件: " + logFileName + " 已满, 已经自动清空.");转载 2010-10-29 09:54:00 · 819 阅读 · 0 评论 -
在Ascii 码表内,还有几个类似于 LF (NL line feed, new line) 换行键这样的字符要作特殊处理
如题,附ascii码表的 地址:http://baike.baidu.com/view/15482.htm原创 2010-12-20 00:30:00 · 2175 阅读 · 0 评论 -
【转】一些 java文件的操作示例
/** * 追加文件:使用FileWriter * * @param fileName * @param content */ public static void method2(String fileName, String content) { try { // 打开一个写文件器,构造函数中的第二个转载 2010-11-01 10:59:00 · 555 阅读 · 0 评论 -
fstream与 C 风格(例如fread 和 fwrite )两种读写文件方法的效率比较
为了探录c++ 风格的fstream与 C 风格(例如fread 和 fwrite )两种读写文件的方法的效率,我特意做了两个实验。我的机器是Windows XP, Visual Studio 20081. 测试写文件速度程序设计思路: 将TEST_SIZE个字符用两种方式写入文件,记录两种方式的耗时。实验代码:void test_write(){ const int TEST_SIZE = 10000000 ; const char* c_plus_write_file = "H://c_p原创 2010-12-21 10:08:00 · 11974 阅读 · 6 评论 -
notepad 换行要用 ‘/r/n’
如题原创 2010-11-01 11:01:00 · 6502 阅读 · 1 评论 -
一个写代码的习惯
当有多种方式时,可以用这种代码风格out(int flag, ...){if(flag==1)out1();if(flag == 2)out2();//.....}out() 相当一个一controller.原创 2010-11-10 16:41:00 · 550 阅读 · 0 评论 -
const char* 可以用 char* 初始化
char* f(){ char* ret = "asdf"; return ret;}main(){ const char * p = f(); // no error return 0;}原创 2010-11-17 09:47:00 · 3775 阅读 · 0 评论 -
可以用继承来获得更好的重用结构
现在有一个class Matrix , 它的职责是一个表示一个矩阵的数据结构。 而 我现在 要将这个矩阵用在特列的地方,因此要加一些方法,例如 打印 void print(); 再例如 把这个矩阵分成四个小矩阵, split()等功能,我一直以来的做法(称为A做法) 是,把这个矩阵拷过来,然后改个名字,例如 Special_Matrix , 然后再在里面写新的方法(这个称为B做法)后来想到了 用继承的方法,直写一个新类Special_Matrix ,继承原来的 Matrix ,这样做有这些优点:1. 当 原原创 2011-01-15 16:41:00 · 761 阅读 · 0 评论 -
一种代码风格:减少assert(...); 缩进
由于assert(...); 语句的作用是为了放置一个验证条件,其功能与一般的功能语句不同,如果不同功能代码都用同样的缩进,这样就会用代码阅读起来不清晰,例如:....assert(k>0);int col_num = this->numcols();assert(col_num >0);int row_num = this->numrows();int i =0;int j = ++i;int arr_index = r * col_num + c ;assert(arr_index ... 和以下的代码原创 2010-11-25 10:10:00 · 712 阅读 · 0 评论 -
error C2065: “PCONTEXT”: 未声明的标识符 -----问题解决
<br />一开始 我只 写了一行:<br /> <br />#include <windef.h><br /> <br />编译时就出现以下错误:<br /> <br />1>c:/program files/microsoft sdks/windows/v6.0a/include/winnt.h(5547) : error C2146: 语法错误 : 缺少“;”(在标识符“ContextRecord”的前面)1>c:/program files/microsoft sdks/windows/v6.0原创 2011-03-09 15:04:00 · 21007 阅读 · 3 评论 -
【转】C语言判断文件是否存在
C语言判断文件是否存在用函数access,头文件是io.h,原型: int access(const char *filename, int amode); amode参数为0时表示检查文件的存在性,如果文件存在,返回0,不存在,返回-1。 这个函数还可以检查其它文件属性: 06 检查读写权限 04 检查读权限 02 检查写权限 01 检查执行权限 00 检查文件的存在性在UNIX和VC下实验成功。好处是 fopen(..,"r")不好,当无读权限转载 2011-03-09 17:35:00 · 1321 阅读 · 0 评论 -
double 转成 float 时,数据会丢失
例如以下语句: float floatVal = 3.15884534;这个 3.15884534 会变成 3.15885 保存在 floatVal 中。即float 约 精确到 小数点后第四位原创 2011-03-14 20:03:00 · 7191 阅读 · 0 评论 -
学习MFC(1)
<br />C++与C开发windows应用程序的区别C语言:<br />使用一个窗口句柄HWND完成窗口的各种操作(WND是windows的内部私有结构)C++:<br />使用CWndWindows窗口和CWnd的区别<br />CWnd由构造函数创建;<br />Windows窗口由CWnd的Create函数创建<br /> CWnd类<br />操作一个HWND类型的数据成员:m_hWnd.◆句柄和指针的区别<br />指针对应一个数据在内存中的地址,指针可以自由修改数据<br />句柄并不能直接操原创 2011-03-28 17:56:00 · 748 阅读 · 0 评论 -
使用双向文件流来对文件同时读写
这是在《C++高级编程(Professional C++)》上看到的例子。BTW,这真是一本很好的书,适合高阶的C++开发者阅读学习!void changeNumberForID( const string& inFileName, int inID, const string& inNewNumber){ fstream ioData( inFileName.c_str() ); if( !ioData ) { cerr > id; //check to s原创 2011-03-30 11:14:00 · 1731 阅读 · 0 评论 -
MFC学习笔记(2)
<br />看了孙鑫老师的视频,对vc++的一些概念有所了解。<br /> <br />以下 是第一课时的笔记:<br /> <br /><br />关于消息,是用以下的数据结构来实现的:<br /> <br />typedef struct tagMSG {<br /> HWND hwnd; <br /> UINT message; <br /> WPARAM wParam; <br /> LPARAM lParam; <br /> DWORD time;原创 2011-03-31 18:43:00 · 966 阅读 · 0 评论 -
开始阅读 《软件开发者路线图-从学徒到高手【英文版】》
<br />最近我大致浏览了一扁《C++高级编程》,学习了很多关于C++细节的东西,同时也扩展了眼界。<br /> <br />接下来我应该干什么呢?<br /> <br />编程。但我编的程序还少吗?<br /> <br />不对,还是应该看看别人怎样说的。<br /> <br />开始阅读 《软件开发者路线图-从学徒到高手【英文版】》原创 2011-04-01 00:07:00 · 810 阅读 · 0 评论 -
一种处理从文件读取整数的方式
<br />在CSDN上看到这个疑问,看到有人回答,于是摘抄下来,以备下次参考。<br /> <br />#include "stdafx.h"#include <iostream>#include <fstream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ const char* FILE_NAME = "E://tmp.txt"; fstream in(FILE_NAME); if(!in原创 2011-04-02 00:35:00 · 1281 阅读 · 0 评论 -
探寻C++最快的读取文件的方案(转)
转载自:http://www.byvoid.com/blog/fast-readfile/在竞赛中,遇到大数据时,往往读文件成了程序运行速度的瓶颈,需要更快的读取方式。相信几乎所有的C++学习者都在cin机器缓慢的速度上栽过跟头,于是从此以后发誓不用cin读数据。还有人说Pascal的read语句的速度是C/C++中scanf比不上的,C++选手只能干着急。难道C++真的低Pascal一等吗?答案是不言而喻的。一个进阶的方法是把数据一下子读进来,然后再转化字符串,这种方法传说中很不错,但具体如何从没试过,因转载 2010-12-18 19:56:00 · 971 阅读 · 1 评论 -
c++文件操作转贴(未整理)
fopen fdopen freopen 的区别2007-01-31 14:57#include FILE *fopen(const char *path, const char *mode); FILE *fdopen(int fildes, const char *mode); FILE *freopen(const char *path, const char *mode, FILE *stream); DESCRIPTION 描述函数 fopen 打开 一个 文件,转载 2010-12-18 19:49:00 · 1082 阅读 · 0 评论 -
如何将单个char c转成string
<br />由于string 是没有类似于 string(char c); 的构造函数的,所以思路是把char转成char* 或 char[], 再用string 的构造函数string(char*) 构造string <br /> <br />示例代码如下:<br /> <br /> <br />char c = 'a' ;<br /> <br />char tmp[1];<br /> <br />tmp[0] = c ;<br /> <br />string result(tmp,1); //要用第二个原创 2010-12-17 22:17:00 · 2609 阅读 · 0 评论 -
转贴:模板的声明和实现为何要放在头文件中?
<br />源: http://blog.csdn.net/lqk1985/archive/2008/10/24/3136364.aspx<br /> <br /> <br />如何组织编写模板程序 <br />发表日期: 1/21/2003 12:28:58 PM <br />发表人: Nemanja Trifunovic <br /><br />前言<br />常遇到询问使用模板到底是否容易的问题,我的回答是:“模板的使用是容易的,但组织编写却不容易”。看看我们几乎每天都能遇到的模板类吧转载 2010-07-16 07:56:00 · 1504 阅读 · 0 评论 -
C++ 模板的问题
<br />如果一个含有模板的类声明在 .h 头文件里,如:<br /> <br />#ifndef SEQLIST_H_#define SEQLIST_H_#include <stdlib.h>#include <iostream>using namespace std;//typedef int T;template <class T>class SeqList{protected: T *list; int maxSize; int size;p原创 2010-07-15 21:14:00 · 971 阅读 · 0 评论 -
如何得到int类型的最大值(C++)
#include #include using namespace std; int main() { cout ::max() return 0; }原创 2010-07-16 08:12:00 · 3058 阅读 · 0 评论 -
Java classpath 及 path 设置
<br />1. JAVA_HOME: D:/Java/jdk1.5.0_07 (此项是jdk的路径)2.CLASSPATH: .;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar (注意:点号不能省略,表示当前目录) 3. 编辑PATH的变量值,在后面加上 ;%JAVA_HOME%/bin (注意:要有分号隔开)转载 2010-08-26 23:22:00 · 924 阅读 · 0 评论 -
C++ Map 学习
<br /> <br />插入元素时要注意用 map < string, string >::value_type<br /> <br />例如:<br /> <br />void map_insert(map < string, string > *mapStudent, string index, string x) <br />{ <br />mapStudent->insert(map < string, string >::value_type(index, x)); <br />} <br />原创 2010-09-05 08:12:00 · 949 阅读 · 0 评论 -
int to char
<br />#include <stdlib.h><br /> <br />int i = 12;<br /> <br />char* num_char = new char[29];<br /> <br />itoa(i,num_char,10); //第三个参数是 10, 表示十进制数<br /> <br />结果保存在 num_char 里。原创 2010-09-05 19:24:00 · 758 阅读 · 0 评论 -
C++ 高精度计算程序运行时间的程序
#include #include using namespace std ;int main(void){ LARGE_INTEGER BegainTime ; LARGE_INTEGER EndTime ; LARGE_INTEGER Frequency ; QueryPerformanceFrequency(&Frequency); QueryPerformanceCounter(&BegainTime) ; //要测试的代码放在这里 QueryPerf转载 2010-09-06 14:52:00 · 918 阅读 · 0 评论 -
关于C++ 中的插入符 << : 一个奇怪的现象
让我们来看以下一段代码:int swap2(int& a, int& b){ int t = a; a = b; b = t; return 0;}void test(){ int a = 23, b = 1083; int t = 0; cout1. swap2 是一个简单的交换函数,输入的两值做交换,所以用的传引用的参数方式按照估计,输入结果 应该是: 0 a= 1083 b= 23 即 a 和 b 两值 交换后的结果然而 实际结果是 0 a= 23 b原创 2010-09-27 19:55:00 · 902 阅读 · 0 评论 -
STL中map用法详解(转)
<br /><br />Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处。<br />下面举例说明什么是一对一的数据映射。比如一个班级中,每个学生的学号转载 2010-12-13 10:23:00 · 631 阅读 · 0 评论 -
关于java 中的assert 关键字
不要用assert 来检查 参数是否合法,要检查就这样写:if(upbound { throw new IllegalArgumentException("upbound must be positive");}那assert 是用来干什么的呢?原创 2010-10-21 12:08:00 · 767 阅读 · 0 评论 -
Eclipse快捷键大全(转载)
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前行和上面一行交互位置(同上)Alt+← 前一个编辑的页面Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性Shift+En转载 2010-10-21 10:12:00 · 473 阅读 · 0 评论 -
数独的一种实现方式
<br /> <br /> <br />生成一个数独的解:<br /> <br />定义:一个 3*3 的整体我称之为box, 那一个9*9 的数独盘里就有9 个 box,编号依次为1-9:<br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br />Box 1 <br /> <br /> <br />Box 2<br /> <br /> <br />Box 3<br /> <br /> <br /> <br /> <原创 2010-10-23 19:45:00 · 944 阅读 · 0 评论 -
STL中List 的sort 比较 用法示例
<br />#include <string>#include <list>#include <algorithm>#include <iostream>using namespace std;bool op(string str1, string str2){ return str1.length() < str2.length();}int main(int argc, char* argv[]) { list <string> list_sto转载 2010-12-13 15:17:00 · 1150 阅读 · 0 评论 -
cout输出16进制数(转)
<br />cout输出16进制2010-02-09 18:21<br />#include "stdafx.h"<br />#include "stdlib.h"<br />#include "iostream"<br />#include<iomanip> <br />using namespace std;<br />int _tmain(int argc, _TCHAR* argv[])<br />{<br />unsigned int i = 0;<br />int temp = (int)i转载 2010-12-13 15:29:00 · 3368 阅读 · 0 评论 -
关于bitset
<br /> <br /> <br />bitset.at(0) ; 返回的是最低的二进制码<br /> <br />index 越小,位数越低<br />原创 2010-12-16 16:03:00 · 568 阅读 · 0 评论 -
std list 的使用总结
<br /> <br />因为之前老忘记list的用法,造成时间浪费,故此总结,以后不再犯同样的错误<br /> <br />1. include 的文件<br /> <br />include <list><br />using namespace std;<br /> <br />2. 遍历<br /> <br />list<char> char_list;<br /> <br />for(list<char>::iterator it=char_list.begin(); it!=char_list.原创 2010-12-16 16:21:00 · 1531 阅读 · 0 评论 -
cout输出二进制数(转)
<br />#include <iostream>#include <bitset>using namespace std;int main(){ int i; cin>>i; cout<<"binary format of"<<i<<" is "<<bitset<sizeof(int)*8>(i)<<endl;} <br /> <br />C/C++里面只能支持八、十、十六进制三种<br />数字型常量。 <br /> <br /> 如果真转载 2010-12-13 15:35:00 · 3393 阅读 · 1 评论 -
在使用stringstream读文件行时,要注意把该对象放在循环内
<br />在使用stringstream读文件行时,要注意把该对象放在循环内:<br /> <br /> ifstream ifstr( tableFileName ); string line ; while( !ifstr.eof() ) { stringstream lineStr; getline( ifstr, line ); lineStr << line.data() ; //use the lineStr } <br原创 2011-04-10 16:35:00 · 1618 阅读 · 0 评论