Oppure

Loading
06/12/09 14:00
Dedalpapero
Per poter evitare l'immediata chiusura di un programma, piuttosto che system("PAUSE";) aggiungo un getchar() a vuoto. Tuttavia, se nel corso del programma ci sono richieste di dati in input, come uno scanf() o un altro getchar(), alla fine del codice un solo getchar() non cambia niente, e devo inserirne 2 consecutivi per poter 'prolungare' l'esecuzione del codice. Sapreste spiegarmi perché accade ciò e se posso rimediarvi ? Scrivere 2 getchar() a vuoto consecutivi mi dà la sensazione di qualcosa di sbagliato, dozzinale.
aaa
06/12/09 14:31
netarrow
probabilmente rimane uno '\n' nel buffer.
dai un flush, ora non ricordo se devi darlo su stdout o su stdin; prova.

flush(stdout)

o

flush(stdin)

prima di dare getchar
aaa
06/12/09 14:42
Lawliet
Il buffer rimane sporc$a come ha detto netarrow un '\n', e per ripulirla bisogna fare prima della funzione getchar:
fflush(stdin);

^^
Ultima modifica effettuata da Lawliet 06/12/09 14:46
aaa