让我们看看这个程序:

ifstream filein("hey.txt");


if(filein.eof()){
    cout<<"END"<<endl;
}

这里“hey.txt”是空的。所以这里的 if 条件被认为应该是真的 但它不是

尽管文件为空,为什么 eof 不返回 true?

如果我在 if 之前添加了这个 eo​​f 返回 true 虽然 arr 仍然是空的并且文件仍然是空的所以两者都没有改变
char arr[100];
filein.getline(arr,99);

最佳答案



您可以使用 std::ifstream::peek() 来检查“逻辑文件结尾”。

关于C++:.eof 在一个空文件上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12134242/

10-11 22:46
查看更多