Hvor å Feilfri en inngangsbuffer i C ++

Rengjøring en inngangsbuffer i C ++ program er viktig når du trenger å forkaste forhåndseksisterende data i strømmen. Dette skjer ofte som en rutinemessig feilsjekking prosess, eller i situasjoner der du bare tilgang til en del av dataene fra strømmen innspill buffer og deretter vil bruke strømmen igjen. Rengjøring av inngangsbuffer gjøres ved å fjerne strømmen tilstand med "klar" funksjon og deretter kalle "ignore" funksjon for å forkaste eventuelle gjenværende tegn fra bufferen.

Bruksanvisning

1 Åpne C ++ filen i et redigeringsprogram, for eksempel Microsoft Visual Studio Express.

2 Inkludere "iostream" og "fstream" overskrifter ved å legge til følgende kode på toppen av C ++ filen:

inkluderer <iostream> inkluder <fstream>

bruker namespace std;

3 Lag en "fstream" objekt og åpne en fil med det ved å legge til følgende kode i funksjon:

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

Den "fstream :: in" parameter setter strømmen til bare å tillate inngangs operasjoner.

4 Utfør en utgang operasjon på strømmen ved å legge til følgende kode:

f << "forsøker tekst utgang";

Utgangen operasjonen vil mislykkes og sette strøm tilstand til "failbit" fordi strømmen er satt til å kun tillate inngangs operasjoner.

5 Rengjør inngangsbuffer med "klare" og "ignore" fungerer ved å legge til følgende kode:

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

Den "klar" funksjonen sletter alle feil flagg og returnerer strømmen tilstand til "goodbit." De "ignore" funksjon ekstrakter og ignorerer opp til "INT_MAX" tegn eller til den støter på en '\ n' linjeskift karakter. Den "INT_MAX" variabelen er maksimumsverdien for "int" datatype og er systemavhengig.

6 Lagre C ++ fil. Kompilere og kjøre programmet for å rense bufferen.