C++学习之旅eof()、fail()
2016-04-12 20:47
323 查看
eof()
EOF 是 End Of File 的缩写。在C语言中,它是在标准库中定义的一个宏,值为-1。
C语言中常利用下面这种方法,来判断输出文件内容。
例如:
while ((c = fgetc(fp)) != EOF) { putchar (c); }
那么在C++中,这种方式便得到了简化,因为有一个eof()函数到文件结尾可以返回true,而之前返回的均为false,下面的while语句也从while(true)变为while(false),从而循环结束。
例如:
fstream fp; char ch; while (!fp.eof()) { fin.get(ch); cout << ch; }
fail()
fail()用来判断一个流是否“坏”掉了。如果failbit、badbit中任意一种或两种被设置,则fail()返回true,否则返回false。在打开了一个文件过后,通常使用fail()函数对其进行检测
例如:
fstream fd; fd.open("test.txt"); if ( fd.fail()) { cout << "Error in opening the file !" << endl; } else { .... }
如文件不存在,文件被其他程序占用,均会导致失败。