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;
}
根据上面的代码,这是我的问题:
输入一个值后,程序将暂停,我必须再次按回车键进入程序的下一部分;我怎么能避免呢?
此外,如果我输入'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;
}
}
答案 0 :(得分:3)
您在第一次迭代时无条件地设置correct=true
,并退出循环。看起来你打算在else
之后的三个语句中添加一对括号。