С помощью добрых самаритян из stackoverflow я дошел до следующего кода, чтобы отлавливать исключения, когда входные данные пользователя не являются целыми числами:
signed int num;
while(true)
{
cin >> num;
try{
if(cin.fail()){
throw "error";
}
if(num>0){
cout<<"number greater than 0"<<endl;
}
}
catch( char* error){
cout<<error<<endl;
break;
}
}
Теперь предположим, что программа называется: checkint.Если я вызываю программу, перенаправляя ввод из текстового файла, скажем: input.txt, который имеет следующее содержимое: 12 5 12 0 3 2 0
checkint <input.txt
Вывод: я получаю следующий вывод:
number greater than 0
number greater than 0
number greater than 0
number greater than 0
number greater than 0
error
Почему выдается ошибка в конце, когда все входные данные в файле являются целыми числами?Спасибо