View Full Version : [c] problemi con gets
Prince_81
23-07-2008, 11:18
All'improvviso la funzione gets ha iniziato a darmi dei problemi, adesso vi spiego, se per esempio le uso in cascata come di seguito:
puts("Inserire Cognome e nome");
gets(st.cognomenome);
puts("Inserire matricola");
gets(st.matricola);
La prima gets gets(st.cognomenome); viene saltata e il programma passa subito alla puts successiva come mai?
Ziosilvio
23-07-2008, 11:50
Prendi il Kernighan&Ritchie, studia bene come funziona l'input-output bufferizzato, e usa fgets.
Prince_81
23-07-2008, 15:29
fgets legge da file io devo leggere da tastiera.
il problema è che la prima gets viene saltata però tutto questo è successo quando ho inserito questa parte del codice una una function mentre nel corpo del main questo non succedeva.
Prince_81
23-07-2008, 15:39
Ho risolto il problema in poche parole l'utilizzo della function era a scelta, bisogna inserire tramite scanf un numero in base all'operazione da svolgere io ho inserito subito dopo la scanf fflush(stdin) e il problema non compare più.
C'era nel flusso stdin qualcosa che faceva saltare la prima gets.
Ziosilvio
23-07-2008, 16:01
l'utilizzo della function era a scelta, bisogna inserire tramite scanf un numero in base all'operazione da svolgere
Ah, ecco, quindi bisognava ripulire lo standard input.
io ho inserito subito dopo la scanf fflush(stdin)
fflush(stdin) è sbagliato.
Leggi il perché: http://faq.cprogramming.com/cgi-bin/smartfaq.cgi?answer=1052863818&id=1043284351
C'era nel flusso stdin qualcosa che faceva saltare la prima gets.
Probabilmente un newline.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.