Leer variable entero en C++

Iniciado por arpemar98, 27 Septiembre 2017, 01:10 AM

0 Miembros y 1 Visitante están viendo este tema.

arpemar98

Hola, queria saber si alguien me puede ayudar con este problema de c++:
1.- tengo que declarar una variable "int" (si o si :( )
2.- leer esa variable
3.- si introduzco cualquier otro dato que no sea un entero (ejemplo una palabar "gato"), el programa me dira que es un dato erroneo y me volvera a preguntar, esto es una idea que tengo de como hacerlo:

Código (cpp) [Seleccionar]
int main(){

   int numero;      ///este es el numero que quiero leer

   do{

      ///aqui leo el numero

       cout << "INTRODUZCA UN NUMERO: ";
       cin>> numero;



     if (aqui no se que condicion poner){
        cout << "dato erroneo";
     }

   }while(aqui tampoco se que poner XD);




}



· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex

engel lex

yo recomendaría hacerlo así


Código (cpp) [Seleccionar]
int main(){
  int numero;      ///este es el numero que quiero leer
  while(true){ //ciclo infinito
  cout << "INTRODUZCA UN NUMERO: ";
  cin >> numero; //introducimos el numero
      if (!cin){ // si cin falló porque el tipo era erroneo
        cin.clear(); //limpiamos cin
        cin.ignore(1<<30,'\n'); // ingoramos los "enter" que queden en buffer,
                                         //el primero numero es simplemente un numero arbitrariamente grande
        cout << "dato erroneo" << endl; // indicamos que el dato está mal
      }else{ // si está bien
        cout << "ok: " << numero << endl; // ok
        break; // rompemos el ciclo
      }

    }


return 0; // main siempre debe retornar 0 si es ok

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

arpemar98