【发布时间】:2018-08-30 11:18:41
【问题描述】:
好的,这是我的程序的一部分,它基本上是向用户重复出现的错误消息,直到输入有效的输入。所以基本上我面临的问题是,每当我输入一个无效的数字(例如 0、12 或负数)时,什么都不会输出,程序将等待另一个输入,只有这样它才会将输入识别为错误或有效输入。当输入符号或字母时,这不是问题。有什么我可以使用的解决方法吗?
while (Choice1 < 1 || Choice1 > 11)
{
if(!(cin >> Choice1), Choice1 < 1 || Choice1 > 11)
{
cin.clear();
cin.ignore(512, '\n');
cout << "\n\aError! Please enter a valid input!" << endl;
cout << "Now please enter the first code: ";
cin >> Choice1;
}
}
【问题讨论】:
-
首先,
Choice1是什么?其次,请阅读the built-in comma operator,因为您的if条件使用它(以使第一个条件无用的方式)。 -
Choice 1 是一个整数变量,用户在 'cin' 处输入,它会增加 12 个目的地之一。另外,逗号运算符是否必须对此做些什么?
-
逗号不是逻辑运算符 -
a, b表示“评估a并忽略结果,然后评估b”。
标签: c++ while-loop