fstream 文件结尾问题

2024-02-01

我正在读取多个文件。这些文件大约有 300 个。由于某种原因,如果我将循环设置为运行超过 3 次迭代,则应该迭代每一行的 while 循环将变得无限。我的问题是:我是否忘记在 while 循环中包含一些内容?现在我只是尝试一次读取一行,最终在输出文件中保存一些数据。或者数据文件中是否有某些内容无法让程序到达文件末尾?

ifstream inFile;
ofstream outFile;
char outputFilename[] = "output.txt";
int i;

outFile.open(outputFilename, ios::out);

for (i = 1; i < 4; i++) {
    stringstream inputFilename;
    inputFilename << "data/" << i << ".txt";
    inFile.open(inputFilename.str().c_str(), ios::in);
    if (!inFile) {
        cout << "Error opening input files" << endl;
        exit(-1);
    }

    char buffer[256];
    while (!inFile.eof()) {
        cout << "HEY";
        inFile.getline(buffer, 100);
    }
    inFile.close();
}
outFile.close();

更新:这效果更好

char buffer[256];
    while (!inFile.eof()) {
      inFile >> buffer;
    }

检查文件结尾是没有意义的before你读。试试这个循环结构:

    char buffer[256];
    while (inFile.getline(buffer, 100)) {
      cout << "HEY";
    }

或者,更好的是,

    std::string buffer;
    while (std::getline(inFile, buffer)) {
      cout << "HEY";
    }

编辑:修复字符串版本中的愚蠢错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

fstream 文件结尾问题 的相关文章

随机推荐

  • 如何使用给定的装饰器获取Python类的所有方法?

    如何获取给定类 A 的所有用 decorator2 class A def method a self pass decorator1 def method b self b pass decorator2 def method c sel
  • 根据字符串的偏移值将字符串拆分为多个部分

    下面是文本 我想根据以下内容分为多个部分offset length 您有疑问或意见并希望联系 ABC 吗 请访问我们的客户支持页面 下面是根据文本提取文本的函数offset length let offset 83 let length 1
  • 如何选择数据并将其添加到特定行? [复制]

    这个问题在这里已经有答案了 如何循环遍历一列中的值以查找一组特定的字符 然后 如果该行包含这些字符 则在新列中专门为该行分配一个值 例如 在这个问题中 我们必须为每个不同意的回答分配一分 为同意的回答分配零分 Id Gender Age P
  • 或者在 IF 语句中无法正常工作

    我在 Windows 窗体 C 程序的 IF 语句 在 foreach 循环中 中有此 Or 条件 if splittedFile Count 3 splittedFile Count 4 continue 它总是如此continue 即使
  • Unity 随时间推移逐渐淡化图像 alpha

    我想逐渐改变我的 UI 图像的 Alpha 而不是立即改变 到目前为止 我立即淡化图像 Alpha 的代码如下 public void Highlight foreach Image image in imagesToHighlight C
  • 无法执行 JQuery-Mobile 可折叠展开/折叠事件

    我有以下演示 HTML 文件 我想使用 JQuery Mobile 可折叠展开 折叠事件 但无法触发 JavaScript 事件 我基于这里的 JSFiddle 示例 http jsfiddle net 6txWy http jsfiddl
  • 使用文件 I/O 正确创建和运行 win32 服务

    我基于此编写了一个非常简单的服务应用程序代码示例 http code msdn microsoft com windowsdesktop CppWindowsService cacf4948 作为正常运行的一部分 应用程序假定在它找到的目录
  • Dynamics CRM:创建具有特定 GUID 的用户

    出于集成目的 Dynamics CRM 中的用户需要具有与环境其他部分 基于 ASP NET 和 SQL Server 2005 构建的多个自定义 Web 应用程序 中相同的 GUID 但是 当我们尝试使用特定 GUID 创建新的 Dyna
  • 如何在 Go 正则表达式中获取捕获组功能

    我正在将一个库从 Ruby 移植到 Go 并且刚刚发现 Ruby 中的正则表达式与 Go 不兼容 google RE2 我注意到 Ruby 和 Java 以及其他语言使用 PCRE 正则表达式 perl 兼容 支持捕获组 所以我需要重写我的
  • 为什么我会收到意外的模板字符串表达式错误?

    是否可以使用地图数组数据 adv event title 里面一个react structured data JSX 我尝试添加反引号但没有成功 name adv event title 尝试1
  • 组合 Bigquery 删除和插入语句

    Bigquery 有没有办法结合DELETE and INSERT语句合二为一 DELETE my project my dataset demo WHERE date CURRENT DATE INSERT INTO my project
  • 使用 ScrollViewer.ScrollToEnd() 进行自动滚动仅在调试时有效,事件处理程序太简单

    看着这个解决方案 https stackoverflow com questions 2984803 how to automatically scroll scrollviewer only if the user did not cha
  • VS 2015 Update 1 - 声称我正在调试发布版本

    更新到 VS 2015 update 1 后 如果我运行一个 Web 项目 MVC 停止该应用程序 然后尝试再次运行它 VS 停止并弹出一个对话框 声称 您正在调试发布版本
  • JSON.stringify 不会对嵌套数组进行字符串化

    我目前正在调查为什么 JSON stringify 无法正确解析我的对象 这是我试图解析为 JSON 字符串的对象 var data name string active bool data value number date string
  • 什么是 doc2vec 训练迭代?

    我是 doc2vec 的新手 我最初试图理解 doc2vec 下面提到的是我使用 Gensim 的代码 正如我想要的那样 我得到了两个文档的训练模型和文档向量 但是 我想知道在几个时期重新训练模型的好处以及如何在 Gensim 中做到这一点
  • 自动合并 Github 上的拉取请求,没有合并气泡

    github 中的 此拉取请求可以自动合并 合并拉取请求 按钮非常棒 除了它会创建合并气泡 有没有办法在 github 中使用这个按钮 功能而不产生合并气泡 No The git blog https github com blog 843
  • SeriesCollection 和 FullSeriesCollection 之间的区别

    我正在尝试清理一些自动生成的代码 并且我对 Excel 中的系列功能相当陌生 所以在许多网站 论坛中我发现人们使用更多SeriesCollection而不是我生成的代码使用FullSeriesCollection 我的代码正在过滤一些内容
  • 没有 Docker 的 Gitlab-runner

    我已经在 ubuntu 16 04 上安装了 gitlab runner 我已经设置了 Executor shell 我的项目托管在 gitlab com 上 有一个非常简单的 yaml 配置文件 dev script pwd I am n
  • 从 Spring WS 拦截器获取请求参数

    我将 Jaxb 2 与 Spring WS 一起使用 并且我有一个针对特定有效负载的拦截器 并且它工作正常 这里我的要求是从拦截器的handleRequest方法中读取请求参数 我知道这应该是相当简单的 但是无法找到读取请求参数的方法 目前
  • fstream 文件结尾问题

    我正在读取多个文件 这些文件大约有 300 个 由于某种原因 如果我将循环设置为运行超过 3 次迭代 则应该迭代每一行的 while 循环将变得无限 我的问题是 我是否忘记在 while 循环中包含一些内容 现在我只是尝试一次读取一行 最终