Programación General > C/C++
Re: Leer un numero ( scanf )
franc:
si pos .... ahora resulta que han sacado un fallo a ese codigo que es... no sepuede poner numeros negativos y no se puede usar el "retroceso" para borrar en caso de que te equiboques ...
Super_G:
pero tiene solucion solo hay que hacer mas comprobaciones
Ruben3d:
Hola a todos.
La función scanf retorna el número de valores leidos con éxito, por lo que basta comprobar este valor (debe ser 1 en este caso) para saber si el usuario ha introducido un entero. Un ejemplo de aplicación de esto sería:
--- Código: Text --- #include <stdio.h> void main(){ int num; int res; printf("Escribe un numero:n"); fflush(stdin); res = scanf("%d", &num); while (res == 0) { printf("Por favor, introduzca un numero valido.n"); fflush(stdin); res = scanf("%d", &num); } printf("El numero es: %dn", num);}
Espero que esto te sirva de ayuda. Un saludo.
Super_G:
Eso parece mejor!!
franc:
si pero solo "parece" ... sigue sin funcionar como debe de funcionar. Si introduces "5dfs35" te imprime 5... deberia dar "error" pues has introducido un caracter.
PD: hmmmm ¿ y si mezclo los 2 codigos que me habeis pasado y pido carcater por caracter tal y como era el codigo anterior y luego uso el segund codigo para validar ese caracter ?
voy a probar :D gracias!
Navegación
[*] Página Anterior
Ir a la versión completa