Se dal terminale digiti:
Puoi leggere la documentazione di scanf. In particolare:
codice:
RETURN VALUES
These functions return the number of input items assigned. This can be fewer than provided for, or even zero, in the event of a matching failure. Zero
indicates that, although there was input available, no conversions were assigned; typically this is due to an invalid input character, such as an alpha-
betic character for a `%d' conversion. The value EOF is returned if an input failure occurs before any conversion such as an end-of-file occurs. If an
error or end-of-file occurs after conversion has begun, the number of conversions which were successfully completed is returned.
Quindi nel tuo caso ti basta verificare che scanf non restituisca 0. Nel caso in cui restituisca 0, significa che nessuna variabile è stata assegnata (perché magari invece di inserire un numero l'utente ha digitato una sequenza di caratteri) e in quel caso l'assegnazione della variabile non riesce e si esce dal processo.
codice:
printf("Inserisci numero: ");
int numero;
if(scanf("%d", &numero) == 0) {
printf("Error\n");
exit(1);
}
printf("Numero: %d", numero);