检查输入在do while循环中是有效的C ++

时间:2014-01-29 16:42:47

标签: c++

我对编程和C ++非常陌生。我的问题是如何检查输入是否为整数,如果不是则给出无效的响应。如果我输入数字代码,但如果我输入一个字母,它只会进入无限循环。我尝试过使用!cin但没有成功。以下是问题所在的一小部分:

    do
    {
        if(Z < 0 || Z > 118 || !cin)
        {
            cout <<"You have entered an invalid value.\n";
        }
        cout <<"\nPlease enter the atomic number, Z:\n"; cin>>Z;  // Ask user to enter atomic number
    } 

    while (Z < 0 || Z > 118 || !cin);

1 个答案:

答案 0 :(得分:1)

您可以在条件

中使用表达式cin >> z的结果
int z;

while(cin >> z && (z < 0 || z > 118)) {
    cout <<"You have entered an invalid value.\n";
    cout <<"\nPlease enter the atomic number, Z:\n";
}