首页 > 后端开发 > C++ > 在 C 文件循环中达到 EOF 时如何防止重复读取最后一行?

在 C 文件循环中达到 EOF 时如何防止重复读取最后一行?

Linda Hamilton
发布: 2024-12-27 13:01:14
原创
528 人浏览过

How to Prevent Duplicated Last Line Reads When Reaching EOF in a C   File Loop?

修复 EOF 循环中重复的最后一行读取

从文本文件读取直到文件末尾(EOF)时出现原始问题) 达到。由于 EOF 指示的处理延迟,提供的 C 代码重复抓取最后一行两次。

要纠正此问题,请遵循事件链:

  1. 抓取第一个整数, 10.
  2. 继续阅读 20。
  3. 阅读 30 并继续 EOF检查。
  4. 由于尚未达到 EOF,因此循环继续。之前的值 30 仍然存储在 x 中。
  5. 检测到 EOF,导致 x 保留值 30 并设置 ios::eofbit 标志。
  6. x 的值输出为 30,与上一次迭代匹配。
  7. 现在评估循环条件,并且由于遇到 EOF,因此循环

要解决此问题,可以对代码进行以下修改:

while (true) {
    int x;
    iFile >> x;
    if (iFile.eof()) break;
    cerr << x << endl;
}
登录后复制

在此修改后的代码中,循环将继续,直到到达文件末尾,确保最后一行仅被读取一次。它还可以优雅地处理空文件的情况。

以上是在 C 文件循环中达到 EOF 时如何防止重复读取最后一行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板