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++ - Problemi con endl
Forum - C/C++ - Problemi con endl - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 13:34
Martedì, 29/09/2009

per attendere la pressione di un tasto dell'utente usa system("PAUSE")

per ovviare al problema dei cin consecutivi devi flushare il buffer come ha detto theprogrammer :)

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 14:01
Martedì, 29/09/2009
Testo quotato

Postato originariamente da HeDo:


per attendere la pressione di un tasto dell'utente usa system("PAUSE")



Ovviamente non con Linux ...

Testo quotato

per ovviare al problema dei cin consecutivi devi flushare il buffer come ha detto theprogrammer :)



Le getchar vanno benissimo con diversi S.O.

La flush dello stdin non è standard ...

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 14:10
Martedì, 29/09/2009
Testo quotato

Postato originariamente da theprogrammer:

Testo quotato

Postato originariamente da HeDo:


per attendere la pressione di un tasto dell'utente usa system("PAUSE")



Ovviamente non con Linux ...

Testo quotato

per ovviare al problema dei cin consecutivi devi flushare il buffer come ha detto theprogrammer :)



Le getchar vanno benissimo con diversi S.O.

La flush dello stdin non è standard ...



eh lo so, ma non ha specificato la piattaforma :)

cmq esisteva una vecchia funzione del C, che se non mi sbaglio non è nemmeno standard, ma "di solito" tutti i compilatori la forniscono, e si chiama kbhit() . La si usa in questo modo:

Codice sorgente - presumibilmente Plain Text

  1. while(!kbhit());



ma ci sono diverse controindicazioni.

Per quanto riguarda il problema del flush dell'stdin, la funzione fflush è standard:

Codice sorgente - presumibilmente Plain Text

  1. fflush(stdin);


Ultima modifica effettuata da HeDo il 29/09/2009 alle 14:10
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 14:38
Martedì, 29/09/2009
Testo quotato

Postato originariamente da HeDo:
Per quanto riguarda il problema del flush dell'stdin, la funzione fflush è standard:

Codice sorgente - presumibilmente Plain Text

  1. fflush(stdin);




La funzione fflush e' standard ma opera correttamente solo se usata sugli stream di output.

L'uso che se ne fa con gli stream di input, come in

fflush(stdin);

NON e' standard e il suo comportamento e' indefinito. Funziona con Windows e i compilatori Microsoft.

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 16:05
Martedì, 29/09/2009
Testo quotato

Postato originariamente da theprogrammer:

La funzione fflush e' standard ma opera correttamente solo se usata sugli stream di output.

L'uso che se ne fa con gli stream di input, come in

fflush(stdin);

NON e' standard e il suo comportamento e' indefinito. Funziona con Windows e i compilatori Microsoft.



già: http://www.cplusplus.com/reference/clibrary/cstdio/fflush/

Testo quotato


If it was open for reading and the last operation was an input operation, the behavior depends on the specific library implementation. In some implementations this causes the input buffer to be cleared, but this is not standard behavior.



traduzione:

Testo quotato


Se lo stream passato come argomento è stato aperto in modalità lettura e l'ultima operazione di input/output era di lettura, il comportamento della funzione dipende dall'implementazione specifica. In alcune implementazioni il buffer in input viene svuotato, ma non è il comportamento standard.



si potrebbe fare una lista di compilatori e testare il comportamento di fflush(stdin).
Credo cmq che il modo in cui lo vogliamo utilizzare noi sia uno standard "de facto" nè ufficiale nè standard ma la maggior parte dei compilatori si comporterà così.

Il gcc cosa fa?

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 17:46
Martedì, 29/09/2009
Testo quotato

Postato originariamente da HeDo:
Credo cmq che il modo in cui lo vogliamo utilizzare noi sia uno standard "de facto" nè ufficiale nè standard ma la maggior parte dei compilatori si comporterà così.



Fino a poco tempo addietro, era solamente il compilatore di Microsoft che supportava tale caratteristica.

Testo quotato

Il gcc cosa fa?



Mi sembra che non funzioni (come da standard).

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 17:48
Martedì, 29/09/2009
Testo quotato

Postato originariamente da salatino:

anche io ho lo stesso prooblemanskdg xkè ho mandato un fila in caso a comprare il pane è uscito un gambale con il film di bruce chuck norris. però ensavom che forse al tramonto il sole del cieco vede meglio sottom la pance del mattino, anche se sembra srtrano am in vetrità è cosi, almeno credo. cosa ne pensate? credo che no perche se fosse si il no sarebbe l'opposto del giallo che non pensavo potesse alzare una bandiera zosi in fretta, ma 0,5 sec per fare un file in pascal con le stringe e i record dell'assempler non pesa come un fil .mpeg sottratto da winamp sotto la protezione di vlc perche il vba uin modalità sola lettura non permette di aprire i file con i registria scorrmenti non scorrevoli. ad ogni modo ciao amichetti vi voglio unn mare di bene!!!! :D :D :D :D



Non mi fa molto ridere ... ci sono le sezioni apposite per l'humor ... quando si sta facendo una discussione seria, questi interventi rompono solo le scatole ...

PM Quote
Avatar
Hast (Normal User)
Rookie


Messaggi: 52
Iscritto: 09/04/2009

Segnala al moderatore
Postato alle 18:19
Martedì, 29/09/2009
Ok grazie anche se comunque avevo risolto con i due getchar() . Comunque potete chiudere

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo