int option;
int invalidOption2 = 0;
while(invalidOption2 == 0){
try{
cin>>option;
if(!cin){
error("invalid input");
}
if(option<1 || option>2){
error("invalid input");
}
if(option==1) {
invalidOption2 = 1;
cout<<"option 1 was selected"<<endl;
}
else if(option==2) {
invalidOption2 = 1;
cout<<"option 2 was selected"<<endl;
}
}
catch(runtime_error& e) {
cerr <<"Please enter a valid option" << endl;
}
}
上記のコードを使用すると、最初の値を入力すると、オプション メッセージまたはエラー メッセージを表示する代わりに、次の行に移動して別の入力を待ちます。ただし、2 番目の値を入力すると、通常どおりに機能します。
たとえば、私が入力した場合
a (ここでは何も起こらないので、別の値を入力する必要があります)
1
「オプション 1 を選択しました」
が表示され、元の無効な入力に対するエラー メッセージは表示されません。
代わりに以下の結果を取得する方法を知りたいです。
a
「有効なオプションを選択してください」
1
「オプション 1 を選択しました」
任意の助けをいただければ幸いです