Hola.
Si estas leyendo caracter a caracter, podes verificar lo ingresado con la función
isdigit o usando el preprocesador:
Código C:
Ver original...
#define ISNUM(X) X >='0' && X <='9'
...
{
char ch;
...
//o,
if (ISNUM(ch))...
...
No especificas si estas trabajando en C o C++. Para usar
isdigit con el primero tenes que incluir
ctype.h, con el segundo
locale
Saludos