我有一个带有可选菜单选项的简单C ++菜单。如果用户键入了有效int
以外的任何内容,例如char
或double
,则程序将进入无限循环。我的代码如下。
#include <iostream>
using namespace std;
int main()
{
int selection;
do {
cout << "1) Update inventory" << endl;
cout << "2) Sell items" << endl;
cout << "3) List inventory" << endl;
cout << "4) Quit" << endl;
cout << "Please select an option: ";
cin >> selection;
}
while (selection != 4);
return 0;
}
为什么无效响应会导致无限循环?如何防止它?
答案 0 :(得分:-1)
之前
cin >> selection;
放置这两行:
cin.clear ();
cin.ignore ();
这将清除缓冲区并允许输入。