Duda con validacion...

Iniciado por .:BlackCoder:., 26 Febrero 2011, 17:52 PM

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

.:BlackCoder:.

En este code... Que valida la entrada de un entero...

Código (cpp) [Seleccionar]
  int numero, cont = 0;
  bool continuar;

  do {
     continuar = false;
     cin.clear();
     if(cont > 0) cin.ignore(1024, '\n');
     cout << "Introduce un numero: ";
     cin >> numero;
     cont++;
     if(cin.fail() && cin.rdstate()){
        cout << "NO ES UN NUMERO" << endl;
        continuar = true;
     }
  } while (continuar);


Por que 1024? De hecho funciona hasta con 1... yo crei que funcionaria con un simple cin.ignore( '\n');  

Pero nop  :xD

Saludos...

EDIT:

Ya vi el por que, mejor hacerlo asi:

Código (cpp) [Seleccionar]
int x;
    do{   
        if (!cin){
            cin.clear();
            while (cin.get() != '\n');
        }           
        cout<<"dame x: ";
        cin>>x;
       
    }
    while(!cin);


:)
"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja