输入getline
后,我的输入文件中的第一行数字被忽略,程序从第二行开始直到结束。'getline'后从文件中读取第一行的问题
下面的代码:
while (!file.eof())
{
getline(file, lineBuffer);
if(lineBuffer.length()==0)
{
continue; //ignore empty lines
}
else
{
// file.open("test.txt");
while (file >> A >> B >> N)
{
for(int count=1; count<=N; count++)
{
if(count%A == 0 && count%B == 0) { cout << "FB "; }
else if(count%A == 0) { cout << "F "; }
else if(count%B == 0) { cout << "B "; }
else { cout << count << " "; }
}
cout << endl;
}
}
}
输入文件中包含的整数的3行并且只有第二行和第三等被处理。我已经广泛地研究过这个问题,但没有人提到类似于我的情况。通常他们会处理试图在getline
函数之后获得用户输入的人。任何想法将不胜感激。
您是否检查了'linebuffer'数据?和'test.txt'中是什么? – 2013-02-07 08:43:05
你能显示一个示例输入文件吗? –
关于这个问题有上千个问题:-(在测试'eof()'之前,你必须尝试获取一些数据,当你使用'getline'时,检查结果是否成功。行也会抛弃'lineBuffer'内容,您在其中找到'lineBuffer.length()!= 0' ...,它包含您缺少的第一组A,B,N结果。 'while(file >> A ...)''循环,它会开始工作,你可能想要(你没有说你期望的,但我认为它是处理第一行) –