Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. 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



Mai memorizzare quello che puoi comodamente trovare in un libro.
Imparare è un'esperienza; tutto il resto è solo informazione.
L'immaginazione è più importante della conoscenza.
(A. Einstein)


Esistendo poi google...
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


"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
cit. theprogrammer
PM Quote