2015-02-10 126 views
0

文本文件的每一行都有名字,姓氏和薪水。沿此線的東西:從文本文件中逐行讀取數據

李四4000

鮑勃·米勒9000

我想我的程序採取的第一個名字,姓氏,每行的工資,並將它們分配到字符串(或整數)。到目前爲止,我已經試過這樣:

while (inFile){ 

    inFile >> firstName; 
    inFile >> lastName; 
    inFile >> grossPay; 

    cout << firstName << " " << lastName << " " << grossPay << endl; 
} 

當輸出的姓名和工資,文本文件的最後一行由程序獲取輸出兩次。我怎樣才能解決這個問題?

回答

2

讀完最後一行後,​​仍處於有效狀態。

它只是當它試圖讀取更多您的測試將失敗,但控制已經進入循環一個額外的時間。

想要在閱讀後測試

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