[C con Clase] ¿Como detectar el tipo de dato ingresado con scanf en C?
Armando B. VERA
abvera en arnet.com.ar
Jue Nov 20 15:18:04 CET 2008
cómo podemos detectar el tipo de dato ingresado por teclado y tratarlo
adecuadamente?
Ejemplo
#include <stdio.h>
int main() {
int fechaTemp=0;
int dia=0;
printf("\n\tIngrese un entero entre 1 y 31");
while(dia==0) {
if(scanf("%d",&fechaTemp)>=1 && fechaTemp<=31) {
dia=fechaTemp;
} else {
printf("\n\n\tError: Ingrese un valor correcto (entero entre 1 y 31) ");
}
}
}
El problema de este código es que si el valor ingresado por teclado no es
entero el bucle se repite indefinidamente.
La pregunta es: ¿Hay alguna forma de saber si el valor ingresado por teclado
es entero o nó. algo asi como las funciones "isdigit(variable)" de la
librería ctype? pero que se pueda tratar con scanf.
Ese problema no la tengo en c++ (cin) pero estoy tratando de entenderle al C.
--
Armando B. VERA
abvera en arnet.com.ar
Más información sobre la lista de distribución Cconclase