Stai parlando della riga di comando?

Ti conviene fargli inserire l'input normalmente e poi controllare che sia un valore numerico e nel caso non lo sia rifarglielo inserire: molto più semplice...

Se lo 0 non è un valore accettabile può bastare un atoi...

Puoi anche leggere un intero con scanf e controllare i valori di ritorno della funzione...