stream.fail() eof() EOF


ifstream infile("student.dat");

while((c=infile.get())!=EOF){}    //EOF的值是-1

但在

#include<iostream>
using namespace std;
int main()
{
int c;
while((c=cin.get()) !=EOF)
cout<<c<<endl;
}

中,输入-1 却不会终止    因为输入-1,程序是按照 - 和 1 两个字符接收的。get()是读取字符的。

在windows中,EOF表示按ctrl+Z,linux中,EOF则按ctrl+D

infile.eof()判断的是文件中所有的字符包括回车,只有当文件中什么字符都没有了,才会返回-1,到达文件的末尾。

不要写‘EOF’  直接写EOF

原文地址:https://www.cnblogs.com/l2017/p/7613285.html