-5
bool correct = false;
while (!correct)
{
    cout << "Please enter an angle value => ";
    cin >> value; //request user to input a value

    if(cin.fail())
    {
        cin.clear();
        while(cin.get() != '\n');
             correct = false;
    }
    else
        cin.get();
    cin.ignore();
    correct = true;
}

根据上面的代码,这是我的问题:

  1. 输入值后,程序将暂停,我必须再次按 Enter 才能继续程序的下一部分;我怎样才能避免它?

  2. 此外,如果我输入像'abcd'这样的值,程序不会循环要求用户再次输入值,为什么会这样?相反,它仍会继续并输出值 0。

我对这些命令还是新手,只是玩和探索它们,我感谢你的指导!

编辑:

while (!correct)
    {
        cout << "Please enter an angle value => ";
        cin >> value; //request user to input a value

        if(cin.fail())
        {
        cin.clear();
        while(cin.get() != '\n');
        correct = false;

        }
        else
        {
        cin.get();
        cin.ignore();
        correct = true;
        }
    }
4

1 回答 1

3

correct=true在第一次迭代时无条件设置,然后退出循环。看起来您打算在 . 之后的三个语句周围添加一对大括号else

于 2013-07-27T00:01:13.127 回答