如果流无法解释 EOF
Ifstream failing to interpret EOF
char buf[25];
ifstream fin("test.txt", ifstream::binary);
while (!fin.eof()) {
bzero(buf, sizeof(buf));
fin.read(buf, sizeof(buf));
}
文件测试.txt包含 75 个字符,没有换行符或任何其他特殊字符。给定代码,while 循环应该只迭代 3 次,但最终迭代 4 次。在上次迭代期间,buf 变量中未存储任何内容。为什么会这样?
fstream.eof
只有在通过文件末尾时才true
。发生第四次迭代是因为您已准确读取文件的内容,但尚未到达 eof。
相关文章:
- 无法解释以下C++代码段的输出
- 数组中无法解释的最后一个项目
- 对于相同的精确计算,无法解释的不同OMP_GET_WTIME()
- C 常量无法解释的行为
- C 无法解释的类“尚未声明”错误,这是由于名称空间而导致的
- [C++]重新定义 y 值的基本数组代码。它正在工作,但无法解释为什么
- std::future::wait 是内存障碍吗?(我无法解释这种数据竞赛)
- unsigned int/signed int/long-long:无法解释的输出
- C++:带有cout和指向char的指针的无法解释的行为
- 我的C++片段中无法解释的断言失败
- C 构造函数中无法解释的调用
- Excel VBA中C++DLL位置存在无法解释的行为
- 无法解释的 VIM 或 GCC 行为
- Marshal.StructureToPtr出现无法解释的内存泄漏
- 为什么这个自定义比较器在构造 std::p riority_queue 时无法解释 std::sort
- C - getline stdin eof无法正常工作
- QT应用程序无法解释使用SQLite插入功能
- 无法解释的链接器错误
- 无法解释编译器的行为
- 如果流无法解释 EOF