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;
}
}
위의 코드를 사용할 때 입력 한 첫 번째 값은 다음 줄로 이동하고 옵션 메시지 또는 오류를 표시하는 대신 다른 입력을 기다립니다 메시지. 그러나 두 번째 값을 입력하면 정상적으로 작동합니다. 예를 들어while 루프 - 첫 번째 입력 후 아무 것도 발생하지 않습니다.
은 내가 (아무것도 여기에 일어나지 않는다, 그래서 다른 값을 입력해야)
1
이
가 표시 될 것입니다 "당신은 옵션 1을 선택"
를 입력 한 경우 잘못된 원래 입력에 대한 오류 메시지는 표시되지 않습니다.
대신 아래 결과를 얻는 방법을 알고 싶습니다.
1
"올바른 옵션을 선택하세요"어떤 도움이
'옵션'은 어떤 유형입니까? – Bathsheba
미안하지만, 질문에 편집 해 드리겠습니다. 옵션이 int 타입입니다 – user2383238