C++: .eof 在一个空文件上

标签 c++ fstream eof

让我们看看这个程序:

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);

最佳答案

eof() function returns "true" after the program attempts to read past the end of the file.

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

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

相关文章:

c++ - 获取默认初始化(非值/零初始化)的 POD 作为右值

c++ - 同时文件流是否有限制?

c++ - 当磁盘快满时,使用 C++ 流缓冲区在 Linux 中复制文件没有异常?

java - 如何为 Java InputStream 元素发送 EOF?

c++ - 在 C++ 中循环访问 2D tic-tac-toe 数组的好方法?

c++ - 在 C++ 中,大返回值(例如字符串)的内存释放是如何发生的?

c - 如何在 C 中接受一定数量的输入

java - 我如何识别 Java 套接字中的 EOF?

c++ - 通过共享内存 IPC 在进程之间共享指针

c++ - 从 std::fstream 检索文件描述符