fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <sstream>
  4. using namespace std;
  5.  
  6. int main(void) {
  7. int dado = -1;
  8. string entrada = ""; //melhor ler uma string e tentar converter depois
  9. while (true) {
  10. cout << "Digite um numero inteiro: ";
  11. getline(cin, entrada); //pede um stream de uma linha toda
  12. cout << endl;
  13. stringstream myStream(entrada);
  14. if (!(myStream >> dado)) { //se não conseguir fazer a conversão
  15. cout << "Valor inválido, tente novamente" << endl;
  16. continue;
  17. }
  18. if (dado < 0) break; //se digitar o número que determina encerrar
  19. // inserir(fila, dado); <========== neste ponto você faz o que quiser, o valor é válido
  20. }
  21. }
  22.  
  23. //https://pt.stackoverflow.com/q/41920/101
Success #stdin #stdout 0s 15240KB
stdin
12
a
3
-1
stdout
Digite um numero inteiro: 
Digite um numero inteiro: 
Valor inválido, tente novamente
Digite um numero inteiro: 
Digite um numero inteiro: