elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ¿Cómo evitar almacenamientos no deseados?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo evitar almacenamientos no deseados?  (Leído 1,617 veces)
Zodiak98

Desconectado Desconectado

Mensajes: 120


Ver Perfil
¿Cómo evitar almacenamientos no deseados?
« en: 26 Junio 2015, 02:18 am »

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
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(void)
  5. {
  6.     int n;
  7.     cin >> n;
  8.  
  9.     if(n > 10) cout << "Es mayor que 10" << endl;
  10.     else cout << "Es menor a 10" << endl;
  11.  
  12.     cin.get();
  13.     return 0;
  14. }
  15.  

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. :) 


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: ¿Cómo evitar almacenamientos no deseados?
« Respuesta #1 en: 26 Junio 2015, 02:25 am »

solo revisa si cin falló

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(void)
  5. {
  6.     int n;
  7.     cin >> n;
  8.     if(cin.fail()){
  9.          cout << "esto no es un entero" << endl;
  10.          return 0;
  11.     }
  12.     if(n > 10) cout << "Es mayor que 10" << endl;
  13.     else cout << "Es menor a 10" << endl;
  14.  
  15.     cin.get();
  16.     return 0;
  17. }


En línea

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

Desconectado Desconectado

Mensajes: 120


Ver Perfil
Re: ¿Cómo evitar almacenamientos no deseados?
« Respuesta #2 en: 26 Junio 2015, 02:40 am »

solo revisa si cin falló

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(void)
  5. {
  6.     int n;
  7.     cin >> n;
  8.     if(cin.fail()){
  9.          cout << "esto no es un entero" << endl;
  10.          return 0;
  11.     }
  12.     if(n > 10) cout << "Es mayor que 10" << endl;
  13.     else cout << "Es menor a 10" << endl;
  14.  
  15.     cin.get();
  16.     return 0;
  17. }

Vale, gracias.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines