Se vuoi controllare sia che la scanf abbia effettuato l'assegnamento, sia che la variabile letta sia positiva, un modo di precedere è il seguente (nota l'sitruzione fflush(stdin) che serve per svuotare il buffer di input, che altrimenti può dare problemi quando si leggono caratteri)
codice:int res = 0; int ok; do{ ok = 0; fflush(stdin); printf("Inserisci il numero: "); ok = scanf("%d", &res); if(ok == 0) continue; if(res <= 0) printf("\nIl numero deve essere positivo!: "); } while(res <= 0);

Rispondi quotando