下面是 C++ 中一个简单菜单的代码。出于某种原因,如果你给它垃圾输入它会正确反应(“请再次尝试你的选择”)。然而,它会再次通过循环再次给出错误消息,然后最终恢复正常运行。
编辑
输入变量是一个字符。如果垃圾输入只有一个字符长,则循环按预期工作。如果在允许用户再次输入任何内容之前,有任何其他字符将导致循环多次执行。
char input = 0;
while (input != 4)
{
cout << "1. Circle";
cout << "\n2. Rectangle";
cout << "\n3. Triangle";
cout << "\n4. Quit";
cout << "\nChoose a shape: ";
cin >> input;
switch(input)
{
case '1':
circleFunctions();
break;
case '2':
rectangleFunctions();
break;
case '3':
triangleFunctions();
break;
case '4':
exit(4);
default:
cout << "\nPlease try your selection again...\n";
input = NULL;
cin.ignore();
break;
}
cin.ignore();
cout << "\n";
}