メニューを表示してから操作することで、ユーザーからの入力を受け取る C++ コンソール アプリケーションがあります。ユーザーが整数値を入力するとすべて正常に動作しますが、ユーザーが「? 」を入力すると、すべて正常に動作します。' ('display help' オプションとして処理したかった) コードは無限ループを開始し、std::cin>>
呼び出し時にブロックしません。これは期待されていますか?ここで何が欠けていますか?
int queryAction()
{
while(1) {
char selection;
std::cout << "Action: ";
std::cin >> selection;
switch(selection)
{
//Some code that acts on the selection
...
}
}
}
フォローアップ:std::cin.clear()
すべての人に電話をかける前
に追加するcin>>
とよいでしょう。私のフォローアップの質問は、有効なASCII文字である必要がある入力にエラー状態が設定されているのはなぜですか?