我试图让我的程序从六行数据文件中读取两行(其他四行是两组两个用于读取其他对象的行)。但是,我只能读取它 - 第一个或第二个,具体取决于我如何操作代码。
这是我的数据文件中的内容:
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 :(得分: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' );
}