Título: isdigit(); problema con validacion de caracteres Publicado por: Netzari Limas en 25 Marzo 2015, 07:18 am Buenas, soy nuevo en este foro y quisiera saber si me pueden ayudar con mi codigo..
Código
Se supone que mi programa se ingresan numeros, pero tengo que validar que no se puedan ingresar caracteres al principio y cuando me pide que inserte un numero, e ingreso un caracter me lanza error. Ayuda plz como uso ahi el isdigit(); Gracias de antemano:) Título: Re: isdigit(); problema con validacion de caracteres Publicado por: eferion en 25 Marzo 2015, 08:20 am Código
No tiene demasiado sentido que estés mezclando "cout" (propio de C++) con "printf" (herencia de C). Lo suyo, por claridad, es que usases todo el rato "cout". Lo mismo te digo con "cin" y "scanf". Código
Vaya manía con usar fflush sobre los buffer de entrada... fflush está pensado para ser utilizado con los buffer de salida, no con los de entrada. Usar fflush sobre un buffer de entrada va a dar un resultado indeterminado, es decir, puede que en tu casa funcione perfectamente y que delante del profesor falle sin remedio. Hay otras alternativas (aunque quizás no tan "bonitas") para vaciar el buffer de entrada... por ejemplo algo del tipo: Código
Hablando de tu problema, lo que quieres es verificar que la tecla pulsada por el usuario se corresponde, efectivamente, con un número. Lo que tienes que hacer entonces es leer un carácter y verificar si dicho carácter se corresponde con un dígito o no. Algo tal que: Código
Por cierto, el include a math.h... que usando la versión C++ debería quedar tal que "#include <cmath>", te sobra. No estás haciendo uso de ninguna función matemática que yo vea. Un saludo. Título: Re: isdigit(); problema con validacion de caracteres Publicado por: Netzari Limas en 25 Marzo 2015, 22:03 pm Disculpa, muchas gracias portu ayuda, ahora ya puedohacerlo, pero falta un detalle que todavia ando checando y si pudieras ayudarme un poco te lo agradeceria:)
Código
Cuando inserto ahora mas de dosdigitos ejemplo: 23 , me lo toma como dos.. y se salta 2 preguntas... :/ que puedo hacer para que el caracter le quepan mas numeros? GRACIAS:) Título: Re: isdigit(); problema con validacion de caracteres Publicado por: NOIS en 26 Marzo 2015, 08:00 am Puedes hacer un array del char, utilizar un int para registrar los números o, ya que estás en C++ usar string
Título: Re: isdigit(); problema con validacion de caracteres Publicado por: eferion en 26 Marzo 2015, 08:05 am Tienes varias opciones:
1. Leer la entrada del tirón como si fuese un string y comparar dígito a dígito: Código
2. Intentar leer directamente el número como tal y comprobar errores: Código
|