文本文件的每一行都有名字,姓氏和薪水。有点像这样:
john doe 4000
bob miller 9000
我希望我的程序获取每行的名字,姓氏和薪水,并将它们分配给字符串(或整数)。到目前为止我试过这个:
while (inFile){
inFile >> firstName;
inFile >> lastName;
inFile >> grossPay;
cout << firstName << " " << lastName << " " << grossPay << endl;
}
当它输出名称和工资时,文本文件的最后一行由程序输出两次。我该如何解决这个问题?
答案 0 :(得分:2)
在阅读完最后一行后,inFile
仍处于有效状态。
只有当尝试阅读更多时,您的测试才会失败,但控件已经进入循环一段时间了。
您希望在阅读后测试。
while ( inFile >> firstName >> lastName >> grossPay ){
// ^^ Now the test happens AFTER reading...
cout << firstName << " " << lastName << " " << grossPay << endl;
}