输入类型错误

Wrong type of input

本文关键字:错误 类型 输入      更新时间:2023-10-16

我有下面的代码,所以基本上我的问题是:当有人输入像"a"这样的字符时,它会弹出一条需要重新输入的消息

我尝试使用 ASCII:if (a >= 97 && a <= 122)但它仍然不起作用

double a;
cin >> a;
if (a >= 'a' && a <= 'z')
{
cout << "Wrong input, please re-input a:  " << endl;
cin >> a;
}
cout << a;

我希望它会弹出消息以重新输入,但无论我输入什么字符,实际输出始终0

可以通过在条件中直接使用它来检查流的状态。如果一切正常,它"返回"为真,否则为"假"。所以你可以做例如

if (!(cin >> a))
{
// Invalid input, or other error
}

对于无效输入,您需要清除状态。

请注意,如果输入无效,则不会读取输入,下次尝试读取时,您将读取与第一次失败的完全相同的输入。解决它的一种方法是忽略该行的其余部分。另一种方法是将整行读取到一个字符串中,然后将其放入输入字符串流中以解析输入。