scanf() restituisce il numero di input validi, quindi in questo devi verificare che effettivamente restituisca 1:
Ciao.codice:#include <stdio.h> int main() { int n; while( 1 ) { printf( "Inserisci un numero da 1 a 30: " ); if( scanf( "%d", &n ) != 1 ) { fprintf( stderr, "HO DETTO UN NUMERO! $&£%#@*\n" ); while( getchar() != '\n' ); continue; } if( ( n < 1 ) || ( n > 30 ) ) { fprintf( stderr, "Da 1 a 30!\n" ); continue; } break; } return 0; }

Rispondi quotando