尝试使功能正常工作但是我仍然是编码的初学者 - 这个功能正在清除我的所有输入有效但是,据我所知,它应该是失败的吗?
char input;
bool valid;
do
{
valid = false;
gotoXY(col, row);
cin >> input;
if (cin.fail())
{
message("Invalid input! Please re-enter.", 5, offset);
cin.clear();
clearLine(col, row);
clearLine(0, row + 2);
}
else
{
valid = true;
}
cin.ignore(150, '\n');
clearLine2(5, offset);
clearLine2(5, offset + 2);
} while (!valid);
cin.setf(ios::skipws);
return input;
我根本无法为此找到解决方案,这真的会引起一些麻烦,任何帮助都会受到赞赏!
答案 0 :(得分:0)
我认为如果您输入“1或字符串”
,您希望cin失败但cin的失败案例可能是输入的值不适合变量。
参考 http://www.cplusplus.com/forum/beginner/2957/ Meaning of cin.fail() in C++?
答案 1 :(得分:0)
据我所见,你的代码说: 如果您的输入失败(没有任何内容输入),则发送消息。 否则接受一切。 对我来说,看起来你必须交换它们。