Salve ragazzi..premetto che ho provato a cercare un pò in giro per la rete ed ho trovato dei risultati,ma molto confusi
Il mio problema è il seguente:
Prendere in input il numero;se "quello" immesso dall'utente è un numero allora prosegui a fare quello che devi fare altrimenti stampa un messaggio d'errore e rieffettua l'inserimentodel numero.
Io ho provato a fare in questo modo (in c):
Ovviamente il suddetto codice non funziona perchè se inserisco anche solo un singolo carattere il programma mi entra in loop.codice:int main() { //Codice trovato in rete int n = 0,i = 0; do { printf ("Inserisci un numero valido "); i = scanf("%d",&n); if (i==0) printf("\nInput non valido!!\n"); } while(i==0); }
Ok ragazzi però non ho perso le speranze
Ho provato a fare un altro ragionamento:
ho supposto che la scanf ritorni uno 0 se fallisce,mentre se non fallisce un valore diverso da 0. (chiedo conferma se quanto ho supposto è giusto)
Quindi ho fatto una cosa di questo tipo:
Ma a malincuore entra in loop anche in questo caso.codice:int main() { int n = 0; do { printf ("Inserisci un numero valido "); if (! scanf("%d",&n)) printf("\nInput non valido!!\n"); } while(! scanf("%d",&n)); }
Guardando la reference della scanf non riesco a capire proprio cosa ritorna la scanf.
Conclusione:
Ci provo a studiare e a documentarmi in modo autonomo ma a volte proprio non mi riesceperciò chiedo a voi.
Non è che riuscireste a darmi una mano?
P.s.Mi interesserebbe anche sapere una soluzione in C++
Grazie in anticipo![]()



perciò chiedo a voi.
Rispondi quotando
