int boardDim(ifstream & inputFile, unsigned int x, unsigned int y) {
inputFile.open("test.txt");
if (!(inputFile.is_open())) {
throw fileNotOpen;
}
else {
stringstream output;
string output1;
if (getline(inputFile, output1)) {
output << output1;
if (output >> x) {
if (output >> y) {
return success;
}
return secBoardVarErr;
}
return firstBoardVarErr;
}
return lineErr;
}
cout << x << endl;
cout << y << endl;
}
輸入文件包含兩行int
s,「10 11」。C++ getline()函數未按預期工作
我返回lineErr。我似乎無法弄清楚爲什麼我的getline()函數返回false。
請編輯您的問題包含一個[MCVE] – Slava
確定該程序不是在一箇舊的空test.txt文件存在一些意想不到的目錄下運行?特別是從IDE運行時,當前工作目錄可能不在您期望的位置。另外,你確定'lineErr'和'success'是不同的值嗎?在返回成功之前移動'cout'語句是一個好主意,所以你可以看到它們(並確定解析是否正常工作)。 –
如果您想使用從該函數以外的文件中讀取的x和y的值,則應將它們作爲參考傳遞。 –