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


 


Tema destacado: Personaliza-Escoge el diseño del foro que más te guste.


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Como evitar que se introduzcan valores no válidos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Como evitar que se introduzcan valores no válidos  (Leído 1,773 veces)
grodomio

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Como evitar que se introduzcan valores no válidos
« en: 17 Mayo 2013, 12:47 »

Hola, tengo que hacer un método de una clase que compruebe si un valor introducido es válido o no.
Ese valor proviene de un menú que tiene las opciones desde 0 hasta 6 incluidas.

Con el código que pongo a continuación controlo los valores numéricos, pero no se cómo evitar que un usuario introduzca una letra por ejemplo.

Código:
bool Help::isvalid(int option) {
if(option < '0' || option > '6') {
return false;
}
return true;
}

Espero vuesta ayuda, gracias.


En línea

leosansan


Desconectado Desconectado

Mensajes: 1.316



Ver Perfil
Re: Como evitar que se introduzcan valores no válidos
« Respuesta #1 en: 17 Mayo 2013, 13:28 »

Hola, tengo que hacer un método de una clase que compruebe si un valor introducido es válido o no.
Ese valor proviene de un menú que tiene las opciones desde 0 hasta 6 incluidas.

Con el código que pongo a continuación controlo los valores numéricos, pero no se cómo evitar que un usuario introduzca una letra por ejemplo.

Código:
bool Help::isvalid(int option) {
if(option < '0' || option > '6') {
return false;
}
return true;
}

Espero vuesta ayuda, gracias.

Cámbiala a:

Citar
bool Help::isvalid(char option) {
   if(option >= '0' && option< '7') {
      return true;
   }
   return false;
}

Observa que opcion debe ser char, que en pricipio debía serlo porque tienes en las condiciones '1' y '6' que son caracteres y no enteros, que entonces serían en la condición 1 y 6 sin las comillas.

Saluditos!. ....  


« Última modificación: 17 Mayo 2013, 14:27 por leosansan » En línea

grodomio

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Como evitar que se introduzcan valores no válidos
« Respuesta #2 en: 17 Mayo 2013, 13:39 »

Hola leosansan,

no veo la diferencia, lo que has hecho ha sido invertir las condiciones y los returns.

Sigue aceptando caracteres no numéricos como válidas.
« Última modificación: 17 Mayo 2013, 13:44 por grodomio » En línea

leosansan


Desconectado Desconectado

Mensajes: 1.316



Ver Perfil
Re: Como evitar que se introduzcan valores no válidos
« Respuesta #3 en: 17 Mayo 2013, 14:10 »

Hola leosansan,

no veo la diferencia, lo que has hecho ha sido invertir las condiciones y los returns.

Sigue aceptando caracteres no numéricos como válidas.


Como te lo he puesto si introduces un numero fuera de 0 y 6, que retorna true es decir lo acepta, o bien introduces un caracter no numérico, al no estar entre 0 y 6 retorna false, es decir, lo rechazaría.

Pero igual estoy "nublado" como el día. :P

Por ejemplo una salida a lo que propones:

Código
  1. Introduzca un  numero entre 0 y 6 :
  2. 3
  3. 3 es aceptado
  4. Introduzca un  numero entre 0 y 6 :
  5. 6
  6. 6 es aceptado
  7. Introduzca un  numero entre 0 y 6 :
  8. 8
  9. 8 es rechazado
  10. Introduzca un  numero entre 0 y 6 :
  11. a
  12. a es rechazado
  13. Introduzca un  numero entre 0 y 6 :
  14.  

con el siguiente código de testeo:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(void)
  5. {
  6.    char option;
  7.    do{
  8.        printf("Introduzca un  numero entre 0 y 6 :\n");
  9.        scanf(" %c",&option);
  10.        if (option>='0' && option<'7')
  11.            printf("%c es aceptado\n",option);
  12.        else
  13.        printf("%c es rechazado\n",option);
  14.    }while(1);
  15.    return EXIT_SUCCESS;
  16. }
  17.  

Saluditos!. ... .  

[/size]
« Última modificación: 17 Mayo 2013, 14:20 por leosansan » En línea

Caster


Desconectado Desconectado

Mensajes: 773



Ver Perfil WWW
Re: Como evitar que se introduzcan valores no válidos
« Respuesta #4 en: 17 Mayo 2013, 14:19 »

Yo creo que la solución sería cambiar el tipo de opción, en vez de ponerlo como int, ponlo como char.

Saludos
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.316



Ver Perfil
Re: Como evitar que se introduzcan valores no válidos
« Respuesta #5 en: 17 Mayo 2013, 14:22 »

Yo creo que la solución sería cambiar el tipo de opción, en vez de ponerlo como int, ponlo como char.

Saludos


 En la función que le pase estaba como char.

Ya he reeditado el mensaje y le pongo un código de prueba que usa ese sistema y funciona O.K.

Saluditos!. ....
« Última modificación: 17 Mayo 2013, 14:25 por leosansan » En línea

Caster


Desconectado Desconectado

Mensajes: 773



Ver Perfil WWW
Re: Como evitar que se introduzcan valores no válidos
« Respuesta #6 en: 17 Mayo 2013, 14:26 »


 En la función que le pase estaba como char.

No me había fijado en eso, el tampoco se debió de fijar y solo copió las condiciones. Tal y como lo pusiste debería de funcionar.

Saludos
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.316



Ver Perfil
Re: Como evitar que se introduzcan valores no válidos
« Respuesta #7 en: 17 Mayo 2013, 14:29 »

No me había fijado en eso, el tampoco se debió de fijar y solo copió las condiciones. Tal y como lo pusiste debería de funcionar.

Saludos

Eso creo yo, por eso le he reeditado el primer mensaje con un zoom.

¡Hasta lueguito¡ .....
En línea

grodomio

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Como evitar que se introduzcan valores no válidos
« Respuesta #8 en: 17 Mayo 2013, 15:00 »

Perdón por no especificarlo, pero estoy programando en C++ y cout no entiende de formatos, se lo traga todo, no le importa que sea int, char, ...

Voy a probar a ver si cambiando el tipo del parámetro de entrada de entero a char se soluciona.

Ya os comento.

Y gracias  a todos.
En línea

grodomio

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Como evitar que se introduzcan valores no válidos
« Respuesta #9 en: 17 Mayo 2013, 15:02 »

Perdón por no especificarlo, pero estoy programando en C++ y cou y cin no entienden de formatos, se lo traga todo, no le importa que sea int, char, ...

Voy a probar lo que dices  a ver si cambiando el tipo del parámetro de entrada de entero a char se soluciona.

Ya os comento.

Y gracias  a todos
« Última modificación: 17 Mayo 2013, 15:04 por grodomio » En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Sectores no validos! ¿¿¿ que hago ???
Hardware
aNgElUz 2 696 Último mensaje 16 Julio 2004, 04:19
por Mr. Cronck
xclones, proxys validos
Chats; IRC y Messengers
javiramos 0 803 Último mensaje 20 Diciembre 2006, 01:15
por javiramos
IVS VALIDOS NECESARIOS « 1 2 »
Hacking Wireless
barrosanchez09 13 1,486 Último mensaje 4 Abril 2007, 13:02
por longits
Como evitar que se note la conexion a una red, evitar ser detectado « 1 2 »
Wireless en Windows
BgCRaCK 10 7,286 Último mensaje 9 Abril 2009, 16:42
por KARR
Como editar valores con cheat enguine
Ingeniería Inversa
daniel7885 2 1,036 Último mensaje 5 Noviembre 2013, 12:03
por Mad Antrax
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines