当用户输入无效整数时,c++菜单卡住了
C++ Menu stuck in infinite if user enters invalid integer
我有一个简单的带有可选菜单选项的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;
}
为什么无效响应会导致无限循环?如何防止?
cin >> selection;
放置以下两行:
cin.clear ();
cin.ignore ();
相关文章:
- 无法获取菜单选择以运行函数.C++
- C++ 中的图形菜单
- C++ 程序菜单使用做同时和切换
- 我正在尝试创建一个菜单,但我的代码一直在循环
- 触发另一个窗口的菜单按钮
- 从子菜单返回后,正确的输入至少进入验证循环一次
- C++ 我的开关格式中的循环不允许我显示菜单选项或接受输入?
- 如何为我的游戏设置主菜单场景?QT C++
- C++循环菜单时做
- 难以从 CImageList 设置菜单项位图
- 如何将我的程序添加到文件和文件夹的macOS右键单击菜单?
- 如何以编程方式显示功能区按钮的下拉菜单?
- 如何在win32的窗口类中设置动态菜单?
- 为什么我的 Do-while 循环无法在C++中运行菜单
- 我正在尝试用 c++ 制作菜单,但不明白为什么它不循环
- 如何使用IExecuteCommand和动词在上下文菜单外壳扩展中显示本地化文本和自定义图标?
- 连接资源文件中的字符串,并将其传递给菜单项字符串 (winapi) c++
- 需要帮助主菜单C++
- 获取 c++ mfc vs2015 中弹出资源菜单项的 id
- QT 窗口模式禁用菜单中的操作