文本文件的每一行都有名字、姓氏和薪水。类似这样的事情:
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/