Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C] Metodo standard per fare il flushing dello STDIN ?

    Ciao ,

    Mi chiedevo quale fosse il metodo standard per fare il flushing dello stdin nel C (ad esempio del buffer della tastiera) , difatti spesso mi capita che nei programmi che fanno uso della funzione "scanf" se alla funzione scanf viene passato per sbaglio un input di tipo diverso da quello specificato dalla specifica di conversione (per esempio gli si passa una lettera anzichè un intero) "impazzisce" e tutte le successive chiamate di "scanf" non faranno + alcuna richiesta di input, ma si limiteranno a rimemorizzare nella variabile alla quale puntano il valore inserito precedentemente per sbaglio nella prima "scanf" .

    Tutto ciò è seccante ,e volevo evitarlo Flushando il buffer di input dopo una scanf se necessario (ossia se gli viene passato un valore sbagliato) , solo che non ho capito quale sia il metodo migliore e soprattutto quale sia quello standard , anke perchè sul mio libro di C non c'è!

    fflush(stdin); E' già scartato perchè non è definito dallo standard C ( e sotto Linux non funziona :P) .

    Qualcuno ha delle info a riguardo?

    Grazie

    Ciao
    Powered BY CRUX Linux on KERNEL 2.4.23-Vanilla
    METAL RULEZZ!! :metallica

  2. #2
    ...Terrible warlords, good warlords, and an english song

  3. #3
    while(getchar()!='\n')
    ;

    Grazie

    Ma questo metodo funziona con tutti i tipi di buffer e in tutti i casi possibili?

    Ma soprattutto , perchè scanf non flusha da solo? :P

    Grazie

    Ciao
    Powered BY CRUX Linux on KERNEL 2.4.23-Vanilla
    METAL RULEZZ!! :metallica

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.