Es muy facil de realizar mediante scanf.
Hay que recordar que scanf esta definido de la siguiente manera:
Código:
int scanf(const char *format, ...);
Esto nos muestra que regresa un entero, pero cual?, Para saber que regresa exactamente consultamos la pagina del man de scanf.
Código:
RETURN VALUE
These functions return the number of input items successfully matched
and assigned, which can be fewer than provided for, or even zero in the
event of an early matching failure.
The value EOF is returned if the end of input is reached before either
the first successful conversion or a matching failure occurs. EOF is
also returned if a read error occurs, in which case the error indicator
for the stream (see ferror(3)) is set, and errno is set indicate the
error.
Entonces solo tienes que verificar el valor de retorno, si pides un entero sabras si te enviaron en realidad un entero o te ingresaron algun caracter o cadena (si te ingresan un numero decimal solo se toma la parte entera y se la asigna a tu variable). Ejemplo.
Código c:
Ver originalint salida = 0;
int miEntero = 0;
while(salida != 1){
salida
= scanf("%i", &miEntero
); if (salida != 1){
printf("No se ha digitado un entero, intente otra vez\n"); }
}
Espero te sea de ayuda
Saludos++