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的值,则应将它们作为参考传递。 –