Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Prevenir tipos de variable

Estas en el tema de Prevenir tipos de variable en el foro de C/C++ en Foros del Web. Hola a todos gracias por leer mi post, ando empezando con c++ y tengo una duda... con un programa que hice, el cual te pone ...
  #1 (permalink)  
Antiguo 07/04/2007, 20:56
Avatar de TheJez  
Fecha de Ingreso: agosto-2004
Ubicación: México - Distrito Federal
Mensajes: 176
Antigüedad: 19 años, 8 meses
Puntos: 0
Prevenir tipos de variable

Hola a todos gracias por leer mi post, ando empezando con c++ y tengo una duda... con un programa que hice, el cual te pone un menu de opciones de la uno a la 6
1) Opción 1
2) Opción 2

y con "cin" le asigno la opcion a una variable de tipo int. mi duda es... si el usuario pone una letra o un numero grande o etc... el programa hara un error gravisimo por el tipo de variable y no salvara nada de la informacion... como puedo prevenir este tipo de errores?
__________________
"Knowledge is power..."
"Conocimiento es poder"
TheJez^
  #2 (permalink)  
Antiguo 08/04/2007, 02:31
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: Prevenir tipos de variable

¿No es mas facil comprobar el valor y si no es uno valido repetir la operacion anterior?
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 10/04/2007, 06:43
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Re: Prevenir tipos de variable

Una solucion simple es leerlo como una cadena de caracteres y luego tratar de convertirlo a entero. Cuando leer una cadena de caracteres no importa lo que leas, siempre lo vas a poder almacenar alli, a menos que sobrepase la longitud maxima.

Otra solucion es leer caracter por caracter y en caso de que el usuario escriba uno "no permitido" muestras un mensaje de error y en caso contrario transformas la cadena resultante a un int.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:14.