我有一个 while 语句,它不断重复文本,而不给用户输入另一个操作值的机会。我究竟做错了什么?它仍然不要求输入。我需要代码显示一次文本,然后要求输入。据推测,如果您键入除 1 以外的任何内容,它会重复该序列。但就目前而言,它只是将您踢出循环,而没有机会纠正动作(截至上次编辑,见下文。)
int action = 0;
while (action != 1)
{
cout << " No you must look it might be dangerous" << endl;
cin >> action;
}
一个建议是:
while (action != 1)
{
cout << " No you must look it might be dangerous" << endl;
cin >> action;
cin.ignore();
}
这仍然会一遍又一遍地产生文本。
while (action != 1)
{
cout << " No you must look it might be dangerous" << endl;
if (!(cin >> action))
// ...problems in the I/O stream...
break;
}
这会在没有机会输入新动作的情况下将您踢出去。