2011/07/01
iofstream用法注意:
打开文件用open函数,清楚错误状态用clear函数,关闭文件用close函数。
ifstream读完一个文件之后要clear并close,否则同一个ifstream对象无法继续处理其他文件,如下所示:
ifstream iff;
iff.open(strPath + "result.txt");
string str;
while(iff>>str)
{
::AfxMessageBox(str.c_str());
}
//iff.clear();
//iff.close();
iff.open(strPath + "result2.txt");
string str;
while(iff>>str)
{
::AfxMessageBox(str.c_str());
}
//iff.clear();
//iff.close();
这样会使iff读完第一个文件后一直处于eofbit状态,从而不能读取第二个文件。
ofstream一般用完后只用close函数关闭即可。
2011/07/03
(1)宏定义用大写字母加下划线表示,如MAX_LENGTH;
(2)函数用大写字母开头的单词组合而成,如SetName, GetName ;
(3)指针变量加前缀p,如*pNode ;
(4)BOOL 变量加前缀b,如bFlag ;
(5)int 变量加前缀i,如iWidth ;
(6)float 变量加前缀f,如fWidth ;
(7)double 变量加前缀d,如dWidth ;
(8)字符串变量加前缀str,如strName ;
(9)枚举变量加前缀e,如eDrawMode ;
(10)类的成员变量加前缀m_,如m_strName, m_iWidth ;
对于int, float, double 型的变量,如果变量名的含义十分明显,则不加前缀,避免烦琐。如用于循环的int 型变量i,j,k ;float 型的三维坐标(x,y,z)等。
写判断语句的时候先写判断值,如if(3 == i),这样可以避免误写成赋值语句的错误:if(i = 3)
2011/08/04
vc里的BOOL是int类型的:
typedef int BOOL;
而非c++中的bool类型,所以不能从BOOL类型隐式转换为bool类型(坑爹啊!)
另外,在vs2005版本中通过classwizard给一个类添加重载的消息处理函数(例如重载CWnd::OnSize())时,需手动在MESSAGE_MAP消息映射宏定义中添加消息映射(例如ON_WM_SIZE()),而类向导不会自动添加。