c ++ ifstream跳过数据

时间:2016-02-06 07:18:55

标签: c++ fstream 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;

    }


}

上面的代码只是在第二行读取。

我认为我有一个幻影换行问题,我似乎无法解决,但我也觉得还有另外一个问题,我可以'理解我目前在文件流方面的经验。

1 个答案:

答案 0 :(得分: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' );
}