【发布时间】:2018-10-20 14:20:38
【问题描述】:
我知道以前有人问过类似的问题,但我真的不知道我的代码有什么问题。出于某种原因,如果我输入“n”,我必须按两次 Enter。但如果我输入“y”,一切正常,代码移至下一部分。我的代码如下:
do{
try {
if (test) cout << " Re-enter: ";
test = false;
getline(cin, choice);
checkinput(choice);
}
catch (int flag) {
if (flag == 1){ cout << "Error: Input must be y or n."; test = true; }
}
} while (test);
checkinput函数如下:
// function for checking the input of y/n
string checkinput(string c) {
if (c != "Y" && c != "y" && c != "N" && c != "n") {
throw 1;
}
if (cin.fail()) throw 1;
return c;
}
【问题讨论】: