Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    12

    [C] Pulizia Buffer di Input!!

    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

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    12
    Ho risolto inserendo questa funzione:
    void clear1 (void){
    while ( getchar() != '\n' );
    }

  4. #4
    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):
    codice:
    void clear_stdin() 
    {
        int ch;
        while((ch=getchar())!='\n' && ch!=EOF)
            ;
    }
    Ultima modifica di MItaly; 07-12-2014 a 16:11
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    12
    Grazie mille!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.