以下は、C++のシンプルなメニューのコードです。何らかの理由で、ガベージ入力を与えると、適切に反応します(「選択を再試行してください」)。ただし、ループをもう一度通過してエラーメッセージが表示され、最後に通常の機能に戻ります。
編集
入力変数はcharです。ガベージ入力の長さが1文字しかない場合、ループは想定どおりに機能します。ユーザーが何かを再入力できるようになる前に、ループが複数回実行される結果となる追加の文字がある場合。
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";
}