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

posted @ 2017-09-30 00:02  ff_d  阅读(468)  评论(0编辑  收藏  举报