C ++ setbuf () - C ++ standardbibliotek

Setbuf () -funksjonen i C ++ angir den interne bufferen som skal brukes til I / O-operasjoner av en strøm.

setbuf () prototype

 ugyldig setbuf (FIL * stream, char * buffer);

Hvis bufferen ikke er null, tilsvarer det å ringe til setvbuf (stream, buffer, _IOFBF, BUFSIZ).

Hvis bufferen er null, tilsvarer den å ringe til setvbuf (stream, NULL, _IONBF, 0). I dette tilfellet er buffringen slått av.

Det er definert i topptekstfilen.

setbuf () Parametere

  • stream: En filstrøm.
  • buffer: En peker til en buffer som kan være null eller ikke. Hvis den er null, er buffering slått av, ellers bør den ha minst BUFSIZ-byte.

setbuf () Returverdi

Ingen

De to eksemplene nedenfor illustrerer bruken av setbuf () -funksjonen. Begge disse programmene bruker filoperasjon. I det første eksemplet settes buffer ved hjelp av setbuf () for å lagre innholdet i filen internt.

I det neste eksemplet setbuf(fp, NULL)slår uttalelsen buffering av. Så for å lese filinnholdet brukes fread ().

Eksempel 1: Hvordan setbuf () -funksjonen fungerer

 #include #include using namespace std; int main () ( char str() = "Buffered Stream"; char buffer(BUFSIZ); FILE *fp; fp=fopen ("test.txt","wb"); setbuf(fp,buffer); fwrite(str, sizeof(str), 1, fp); fflush(fp); fclose(fp); cout << buffer; return 0; )

Når du kjører programmet, vil utdataene være:

 Buffered Stream

Eksempel 2: funksjonen setbuf () med buffering slått av

 #include #include using namespace std; int main () ( char str() = "Unbuffered Stream"; char strFromFile(20); FILE *fp; fp=fopen ("test.txt","wb+"); setbuf(fp,NULL); fwrite(str, sizeof(str), 1, fp); fflush(fp); /* We need to rewind the file pointer and read the file because the data from test.txt isn't saved in any buffer */ rewind(fp); fread(strFromFile, sizeof(strFromFile), 1, fp); fclose(fp); cout << strFromFile; return 0; )

Når du kjører programmet, vil utdataene være:

 Ubuffert strøm

Interessante artikler...