Come pulire un ingresso del buffer in C ++

December 25

Pulizia un buffer di ingresso nel programma C ++ è importante quando è necessario scartare i dati preesistenti nel flusso. Questo si verifica spesso come un processo di controllo degli errori di routine, o in situazioni in cui è possibile accedere solo una parte dei dati dal buffer di ingresso del flusso e quindi desidera utilizzare di nuovo il torrente. Pulizia del buffer di input è fatto cancellando stato del flusso con la funzione "chiaro" e quindi chiamando la funzione "ignora" per ignorare le caratteri rimanenti dal buffer.

istruzione

1 Aprire il file C ++ in un editor, ad esempio Microsoft Visual Studio Express.

2 Includere il "iostream" e "fstream" headers aggiungendo il seguente codice nella parte superiore del file C ++:

includere <iostream> includere <fstream>

using namespace std;

3 Creare un oggetto "fstream" e aprire un file con esso aggiungendo il seguente codice nella funzione:

fstream f ( "example.txt", fstream :: a);

Il "fstream :: in" parametro imposta la corrente per consentire solo operazioni di input.

4 Eseguire un'operazione uscita sul flusso aggiungendo il codice seguente:

f << "tentare output di testo";

L'operazione di uscita fallirà e impostare lo stato del flusso di "failbit", perché il flusso è impostato solo operazioni di input permetteranno.

5 Pulire il buffer di input con i "chiari" e "ignora" le funzioni aggiungendo il seguente codice:

if (f.fail ()) {
f.clear ();
f.ignore (INT_MAX, '\ n');
}

La funzione "Clear" cancella tutti i flag di errore e restituisce lo stato del flusso di "goodbit." "Ignora" estratti funzione e ignora fino a caratteri "INT_MAX" o fino a quando non incontra un '\ n' carattere di nuova linea. La variabile "INT_MAX" è il valore massimo per il tipo di dati "int" e dipende dal sistema.

6 Salvare il file C ++. Compilare ed eseguire il programma per pulire il buffer di input.