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
,“10 11”。
我正在返回 lineErr。我似乎无法弄清楚为什么我的 getline() 函数返回 false。
最佳答案
写入output
流后,您就到了流的末尾。为了能够再次读取数据,您需要查找到流的开头:
output.seekg(0, ios_base::beg);
顺便说一句,output
对于您正在读取的流来说是一个非常糟糕的名称。 :-)
关于C++ getline() 函数没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42426585/