c++ - 在cplusplus中使用fstream时,这个程序有什么问题

标签 c++

下一个程序有什么问题吗?我希望文件到达结尾。

ifstream file("main.cpp", ios::binary | ios::ate);
if (file) {
    //fstream::pos_type size = file.tellg();
    file.seekg(100, fstream::cur);
    if (file.eof()) {
        cout << "eof is true\n";
    }
}

fstream 到达文件末尾,但为什么不回显“eof 为真”。

最佳答案

只有当实际读取操作由于到达文件末尾而失败时,eof 位才会被设置(因此 eof() 仅返回 true)。搜索操作(显然)是不够的。

关于c++ - 在cplusplus中使用fstream时,这个程序有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16356197/

相关文章:

c++ - 错误处理 : return value vs exception in C++

c++ - 转换为非标量误差意味着什么?我该如何解决?

c++ - 即使调用了notify_all,工作线程也会在condition_variable处保持等待

c++ - C/C++。库相对于组合目标文件的优势

c++ - 如何将新集合添加到 vector C++

c++ - 从 volatile uint8_t* 到 uint8_t* 的无效转换

c++ - 类模板中的类模板

c++ - CUDA - 将 RGB 图像转换为灰度

c++ - 使用 libtorrent 确定 torrent 下载序列的优先级

c++ - 每个 undefined symbol 是否都与它来自的库名称相关联?