Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Prolungare il file eseguibile con getchar()
Forum - C/C++ - Prolungare il file eseguibile con getchar()

Avatar
Dedalpapero (Normal User)
Newbie


Messaggi: 3
Iscritto: 06/12/2009

Segnala al moderatore
Postato alle 15:00
Domenica, 06/12/2009
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.

PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 15:31
Domenica, 06/12/2009
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

PM Quote
Avatar
Lawliet (Normal User)
Expert


Messaggi: 386
Iscritto: 09/04/2009

Segnala al moderatore
Postato alle 15:42
Domenica, 06/12/2009
Il buffer rimane sporc$a come ha detto netarrow un '\n', e per ripulirla bisogna fare prima della funzione getchar:
Codice sorgente - presumibilmente Plain Text

  1. fflush(stdin);


^^

Ultima modifica effettuata da Lawliet il 06/12/2009 alle 15:46
PM Quote