System32
Utente Stellare
Se usi %d e quindi la scanf si attende delle cifre, se non arriva nessuna cifra ma solo delle lettere, allora la scanf restituisce 0.
Se usi %s per una stringa, è normale che non otterrai 0 perché qualsiasi carattere va bene. Quindi il controllo può essere utilizzata per gli interi non per le stringhe.
Ah ecco, me lo immaginavo. Ho chiesto perché a volte il programmatore potrebbe voler controllare se l'utente ha inserito correttamente l'input richiesto dal programma e dal momento che la scanf restituisce 0 nel caso in cui riceve un tipo di dato che non si aspettava allora pensavo si potesse utilizzare per controllare l'input ma poi ho pensato che con le stringhe e con i caratteri non funzionerebbe, a meno che non si verifica la lunghezza della stringa, se è maggiore di 1 sicuramente è una stringa altrimenti un carattere.
Comunque @oscarandrea inserendo quel controllo suggerito da nothing si risolve il programma.