2016-02-06 99 views
0

我試圖讓我的程序讀取兩行出一個六行的數據文件(其他四個兩套兩塊意味着要閱讀到其他對象)。但是,我只能把它讀一個 - 第一或第二取決於我如何操作的代碼。C++ ifstream的跳繩數據

下面是在我的數據文件:

Mustang Sally 
123.45 
George Porge 
11.99 
J. D. Rockerfeller 
56321.3 

這裏的地方我需要閱讀的代碼段所述數據:

void account::readAccount(ifstream &inFile) 
{ 
    while (getline(inFile, name)) 
    { 
     inFile.ignore(); 
     inFile >> savings; 

    } 


} 

上面的代碼僅在第二行中讀取數據。

我想我有一個幻影換行問題,我似乎無法解決,但我也覺得還有另一個問題,我不能理解我目前的經驗水平文件流。

+0

你想要什麼兩行讀?浮點值? – user3813674

+1

你爲什麼不描述(給自己至少)有什麼每一行做什麼會在以下這些調用輸入緩衝器。應該很清楚,然後出了什麼問題。作爲一般建議,不要混合基於行和基於字段的輸入。 –

回答

2

上述代碼僅讀取所述第二行。

是的,因爲你告訴它ignore。我不知道你想從這些獲得正是兩行,但基於代碼,我假設你想在行2,4讀值。以下代碼將打印出這兩行。

float savings = 0.0f; 
while(getline(inFile,line)) 
{ 
    if(savings > 0.0f) cout << savings << endl; 
    inFile >> savings; 
    inFile.ignore(1000, '\n'); 
}