文本文件的每一行都有名字、姓氏和薪水。大致如下:
john doe 4000
鲍勃·米勒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;
}