Exacto, si tu lees una cadena, y quieres comprobar si es un número, tienes que comprobar que todos sus dígitos sean números.
Ejemplo:
te introducen 65536 y lo lees como cadena de caracteres , el contenido de dicha cadena es:
cad[0]='6'
cad[1]='5'
cad[2]='5'
cad[3]='3'
cad[4]='6'
cad[5]='\0'
mientras, que si tu lo lees como un entero, simplemente es un entero que tiene el valor 65536.
Si tu estás leyendo números como cadenas, y te preocupa que te puedan colar cosas como asd345:
representado como:
cad[0]='a'
cad[1]='s'
cad[2]='d'
cad[3]='3'
cad[4]='4'
cad[5]='5'
cad[6]='\0'
Utilizas isdigit para cada carácter o lo que he comentado yo antes.