std :: cin não lança uma exceção na entrada incorreta
Eu só estou tentando escrever um programa simples que lê de cin e, em seguida, valida que a entrada é um número inteiro. Se isso acontecer, vou sair do meu loop while. Caso contrário, solicitarei a entrada do usuário novamente.
Meu programa compila e roda muito bem, o que é ótimo. Mas não solicita novas entradas se eu inserir um valor não numérico. O que da?
#include <iostream>
using namespace std;
int main() {
bool flag = true;
int input;
while(flag){
try{
cout << "Please enter an integral value \n";
cin >> input;
if (!( input % 1 ) || input == 0){ break; }
}
catch (exception& e)
{ cout << "Please enter an integral value";
flag = true;}
}
cout << input;
return 0;
}