检查输入是有效的C 循环时的DO

Checking input is valid C++ in a do while loop

本文关键字:循环 DO 检查 有效 输入      更新时间:2023-10-16

我是编程和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);

您可以在条件下使用表达式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";
}