[C con Clase] ¿Como detectar el tipo de dato ingresado con scanf en C?

Zaka Elab shanatorio en gmail.com
Jue Nov 20 21:29:33 CET 2008


Hola Armando,

Si te fijas en la definición de scanf, cuando el valor leído no es válido,
el valor de retorno de la función es EOF, que está definido como un entero
negativo; por lo que tenemos que siempre que el valor sea diferente de un entero
la expresión if (scanf("%d",&fechaTemp)>=1 && ...) será FALSE.

Si quieres no tener errores una opción podría ser leer como carácter o cadena y
convertir a entero. No tendrás errores en la lectura, ya que todo lo que puedes
meter por terminal es un carácter y podrás usar la función isdigit con cada carácter
recibido.

Creo que es esto lo que querías.

Espero haber acertado.

Zaka.




Más información sobre la lista de distribución Cconclase