输入类型错误

时间:2019-08-19 15:51:39

标签: c++

我有下面的代码,所以基本上我的问题是:当有人输入“ 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

1 个答案:

答案 0 :(得分:1)

可以直接在条件中使用它来检查流的状态。如果一切正常,则“返回” true,否则返回“ false”。这样您就可以做到

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

在输入无效时,您需要clear状态。

请注意,如果输入无效,那么将不会读取输入,并且下次尝试读取时,您将读取与第一次输入完全相同的输入。解决该问题的一种方法是ignore其余部分。另一种方法是read a whole line into a string,然后将其放入input string stream中以解析输入。