程序不执行循环

时间:2013-07-26 23:57:28

标签: c++ while-loop cin

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. 输入一个值后,程序将暂停,我必须再次按回车键进入程序的下一部分;我怎么能避免呢?

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

  3. 我仍然对这些命令不熟悉,只是玩和探索它们,我感谢你的导游!

    编辑:

    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 个答案:

答案 0 :(得分:3)

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