FILTRAR TEXTO MENU

Quería que el programa solo aceptara números y saliera del bucle con ctrl+d. Mi solución no funciona si introduces valores no numéricos. ¿Cómo debería hacerlo o cual es el error que estoy cometiendo?

int main(){
int n,c,count=0;

do {
c=scanf("%d",&n);
if (c==1) count++;
}while (c!=-1);

printf("C: %d/ %d datos correctos",c,count);
}