2016-02-06 60 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'); 
}