Hva gjør FFLush i C -programmering

Hva gjør FFLush i C -programmering
I C -programmering, fflush (stdin) Funksjon brukes til å fjerne inngangsbufferminnet om alle data som fremdeles kan lagres. Det gjør dette ved å frigjøre ethvert minne tilknyttet standardinngangsstrømmen, kjent som STDIN, som er standardinngangen som brukes til å lese alle data fra kommandolinjeargumenter eller et tastatur. Dette betyr at gjenværende data som ikke er behandlet, blir kastet og eventuelle data fra den siste vellykkede inngangsoperasjonen kan brukes.

I henhold til C -standarden, ved bruk av fflush (stdin) er et uklart atferdsmønster. Visse kompilatorer, som Microsoft Visual Studio, tillater dette, skjønt. Selv når du godtar et heltallnummer med mellomrom og diskuterer tidligere innspill for det samme, blir en buffer ikke rengjort over neste inngang. Dette problemet løses ved å skylle den samme strømmen og bufferen med fflush (stdin).

La oss se på et eksempel:

#inkludere
#inkludere
int main ()

char s [20];
int jeg;
for (i = 0; i<3; i++)

printf ("Skriv inn en streng \ n");
scanf ("%[^\ n] s", s);
printf ("%s \ n", s);
fflush (stdin);

retur 0;

Koden over tar en enkelt inngang og gir samme resultat. Bufferen blir deretter renset ved hjelp av fflush (stdin) funksjon, og deretter legges den neste inngangen inn og trykt og så videre.

Produksjon

Hva gjør FFLush (STDIN) i C -programmering?

De fflush (stdin) Funksjon brukes med inngangsoperasjoner for å sikre at data blir behandlet riktig, og ingenting blir etterlatt i inngangsbufferen. I C -programmering vil hver inngangsoperasjon legge igjen noen data i inngangsbufferen. Disse dataene blir liggende der til programmet velger å behandle dem, men dette kan forårsake uventede problemer. For eksempel, hvis et program forventer et nummer som en inngang, men brukeren ved et uhell skriver i en bokstav, vil dataene som er igjen i bufferen fortsatt bli behandlet som neste inngang. Dette kan føre til at programmet krasjer eller dataene blir parset feil.

Bruker fflush (stdin) Funksjon kan bidra til å forhindre at dette skjer. Funksjonen tømmer bufferen manuelt, og dermed fjernes alle gjenværende data fra den. Uten denne funksjonen vil datamaskinen fortsatt behandle rester av data som neste inngang, men nå kan enhver feil fanges, og programmet kan gjøres for å fremme brukeren for riktig inndata.

Bortsett fra å bruke den til å fjerne inngangsbuffere, fflush (stdin) Funksjon kan også brukes til å skylle utgangsstrømmer. Dette er nyttig for programmer som krever en sanntidsutgang eller viser fremdriften i et program. Ved å skylle utgangsstrømmen, kan den nyeste utgangen vises umiddelbart. Ellers må programmet vente til hele strømmen er full før det kan vises.

Konklusjon

De fflush (stdin) Funksjon er en viktig del av C -programmering. Ved å skylle gjenværende data fra inputbuffere, hjelper det å forhindre uventede innganger fra å kaste av programmet og forårsake feil. I tillegg kan den brukes til å spyle utgangsstrømmer som kan være nyttige for å vise sanntidsinformasjon. Selv om det ikke brukes ofte, er fflush (stdin) Funksjon er en viktig del av enhver programmerers verktøysett.