c++ - 从文本文件中逐行读取数据

标签 c++ text stream

文本文件的每一行都有名字、姓氏和薪水。类似这样的事情:

john doe 4000

bob miller 9000

我希望我的程序获取每一行的名字、姓氏和薪水,并将它们分配给字符串(或整数)。到目前为止我已经试过了:

while (inFile){
    
    inFile >> firstName;
    inFile >> lastName;
    inFile >> grossPay;
    
    cout << firstName << " " << lastName << " " << grossPay << endl;
}

当它输出姓名和薪水时,文本文件的最后一行被程序输出了两次。我该如何解决这个问题?

最佳答案

阅读你的最后一行后,inFile 仍处于有效状态。

只有当它尝试读取更多时,您的测试才会失败,但控制已经进入循环了额外的时间。

您想在阅读后进行测试。

while ( inFile >> firstName >> lastName >> grossPay ){
//      ^^ Now the test happens AFTER reading...
    cout << firstName << " " << lastName << " " << grossPay << endl;
}

关于c++ - 从文本文件中逐行读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28424149/

相关文章:

c++ - Windows CopyFileA 失败然后成功

algorithm - 在较小的字符串中查找大量字符串中的所有匹配项

java - 从 arrayList 中将双括号删除为单括号

c++ - 如何在 C++ 中为浮点值显示多个前导零?

c++ - 基本类型 volatile 初始化是可观察的行为吗?

C++ double dispatch 观察者通知

Python文本处理/查找数据

python - 文本合并 - 如何在 Python 中执行此操作? (R源)

java - 我是否应该始终将 InputStream 包装为 BufferedInputStream?

c++ - 什么排序方法使用 : quicksort, bucket sort, radix, ... 对于微小的数据对? (c++)