Saludos!
Necesito hacer una validación a un dato ingresado por el usuario. Las condiciones a cumplir son:
1) Que sea un número.
2) Que dicho número no sea menor que cero ni mayor que nueve (ó que sea un número entre 0 y 9

)
Ya lo he intentado.. y suena fácil... pero no le hayo

. ¿Qué hay de malo con esto?
Código:
do {
scanf("%d", &variable);
} while (!isdigit(variable) || variable<0 || variable>9);
Obviamente antes insertando las librerias correspondientes (ctype.h)...
El resultado que obtengo con esto es que si ingreso una letra me produce un ciclo infinito... lo extraño es que es el mismo comportamiento si no niego
isdigit... e incluso si no lo inserto...
Utilizo
scanf porque tengo que dar la opción a el usuario de que "corrija" si ha escrito un número que no quiere...
La verdad me apena decir que no le hayo...

¿en qué falla?, ¿qué es lo correcto??....
Gracias de antemano.