PDA

Visualizza la versione completa : [C] Pulizia Buffer di Input!!


dwight95
07-12-2014, 01:55
Salve a tutti...
Ho un piccolo problema.. Utilizzando la funzione presente in C fflush(stdin), il buffer di input non viene ripulito.. Programmo con Xcode su Mac.. Qualcuno ha una qualche idea del perch? Grazie

Alex'87
07-12-2014, 11:53
Vedi qua: http://stackoverflow.com/questions/2979209/using-fflushstdin

dwight95
07-12-2014, 11:58
Ho risolto inserendo questa funzione:
void clear1 (void){
while ( getchar() != '\n' );
}

MItaly
07-12-2014, 14:06
Con quel codice se l'utente inserisce un EOF (Ctrl-Z su Windows, Ctrl-D su Linux e OS X) oppure se l'input rediretto da un file e il file termina il tuo programma va in loop infinito.

La cosa leggermente pi sofisticata (devi uscire anche in caso di EOF):


void clear_stdin()
{
int ch;
while((ch=getchar())!='\n' && ch!=EOF)
;
}

dwight95
07-12-2014, 15:05
Grazie mille!!

Loading