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