从文本文件中逐行读取数据

Reading data line by line from a text file

本文关键字:读取 数据 逐行 文本 文件      更新时间:2023-10-16

文本文件的每一行都有名字、姓氏和薪水。大致如下:

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;
}