C++学习之旅eof()、fail()

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
{
    ....
}

如文件不存在,文件被其他程序占用,均会导致失败。

你可能感兴趣的:(C++,eof,fail)