輸入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 ...)''循環,它會開始工作,你可能想要(你沒有說你期望的,但我認爲它是處理第一行) –