我無法讓istringstream在下面顯示的while循環中繼續。數據文件也顯示在下面。我使用輸入文件中的getline獲取第一行並將其放入istringstream lineStream中。它通過while循環一次,然後讀入第二行並返回到循環的開始處並退出而不是繼續循環。我不知道爲什麼,如果有人能幫助我,我會感激。 編輯:我有這個while循環條件的原因是因爲該文件可能包含錯誤的數據行。因此,我想確保我正在閱讀的行具有以下在數據文件中顯示的正確形式。istringstream不輸出正確的數據
while(lineStream >> id >> safety){//keeps scanning in xsections until there is no more xsection IDs
while(lineStream >> concname){//scan in name of xsection
xname = xname + " " +concname;
}
getline(InputFile, inputline);//go to next xsection line
if(InputFile.good()){
//make inputline into istringstream
istringstream lineStream(inputline);
if(lineStream.fail()){
return false;
}
}
}
數據文件
4 0.2 speedway and mountain
7 0.4 mountain and lee
6 0.5 mountain and santa
我認爲你有太多的混亂文件讀取操作可能不連貫彼此。 –
lineStream需要在頂部/全局聲明,而不是底部聲明,或者僅在 – user2976089
的塊中可用。有什麼令人困惑的? – ddwong