¿Cómo evitar almacenamientos no deseados?

Iniciado por Zodiak98, 26 Junio 2015, 02:18 AM

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

Zodiak98

Me gustaría saber cómo podría hacer para evitar que los usuarios ingresaran valores que no corresponden al tipo de variable. Por ejemplo, supongamos que tengo un código bastante sencillo como este:

Código (cpp) [Seleccionar]

#include <iostream>
using namespace std;

int main(void)
{
     int n;
     cin >> n;

     if(n > 10) cout << "Es mayor que 10" << endl;
     else cout << "Es menor a 10" << endl;

     cin.get();
     return 0;
}


Pero, ¿cómo podría hacer para prever una situación donde en lugar de un número introduzca un caracter o una cadena de caracteres y realizar otra acción?

Sé que es algo bastante simple y hasta ridículo, pero igual me gustaría saberlo.

Gracias de antemano. :) 

engel lex

solo revisa si cin falló

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

int main(void)
{
     int n;
     cin >> n;
     if(cin.fail()){
          cout << "esto no es un entero" << endl;
          return 0;
     }
     if(n > 10) cout << "Es mayor que 10" << endl;
     else cout << "Es menor a 10" << endl;

     cin.get();
     return 0;
}
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.

Zodiak98

Cita de: engel lex en 26 Junio 2015, 02:25 AM
solo revisa si cin falló

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

int main(void)
{
     int n;
     cin >> n;
     if(cin.fail()){
          cout << "esto no es un entero" << endl;
          return 0;
     }
     if(n > 10) cout << "Es mayor que 10" << endl;
     else cout << "Es menor a 10" << endl;

     cin.get();
     return 0;
}


Vale, gracias.