C ++ setbuf () - C ++ Standardbibliotek

Setbuf () -funktionen i C ++ ställer in den interna bufferten som ska användas för I / O-operationer av en ström.

setbuf () prototyp

 ogiltig setbuf (FIL * stream, char * buffert);

Om bufferten inte är noll motsvarar den att anropa setvbuf (stream, buffer, _IOFBF, BUFSIZ).

Om bufferten är noll motsvarar den att anropa setvbuf (stream, NULL, _IONBF, 0). I detta fall är buffringen avstängd.

Det definieras i rubrikfilen.

setbuf () Parametrar

  • stream: En filström.
  • buffert: En pekare till en buffert som kan vara noll eller inte. Om den är noll är buffring avstängd, annars borde den åtminstone ha BUFSIZ-byte.

setbuf () Returvärde

Ingen

Nedanstående 2 exempel illustrerar användningen av funktionen setbuf (). Båda dessa program använder filhantering. I det första exemplet ställs buffert in med setbuf () för att lagra innehållet i filen internt.

I nästa exempel setbuf(fp, NULL)stängs uttalandet av buffring. Så för att läsa filinnehållet används fread ().

Exempel 1: Hur funktionen setbuf () fungerar

 #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 kör programmet blir resultatet:

 Buffrad ström

Exempel 2: funktionen setbuf () med buffring avstängd

 #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 kör programmet blir resultatet:

 Obuffrad ström

Intressanta artiklar...