C ++ fread () - C ++ standardbibliotek

Fread () -funksjonen i C ++ leser et spesifisert antall tegn fra den gitte inngangsstrømmen.

fread () prototype

 size_t fread (void * buffer, size_t size, size_t count, FILE * stream);

Den fread()Funksjonen leser telle antall objekter, hvert av størrelse størrelse bytes fra det gitt inngangsstrømmen. Det ligner på å ringe fgetc () størrelse ganger for å lese hvert objekt. Avhengig av antall tegn som er lest, økes filposisjonsindikatoren.

Den resulterende verdien av filposisjonsindikatoren for strømmen er ubestemt hvis det oppstår feil under lesing av filen.

Hvis gjenstandene ikke er trivielt kopierbare, er oppførselen udefinert.

Hvis størrelsen eller antallet er null, vil et kall til freadnull returnere og ingen andre handlinger utføres.

Det er definert i topptekstfilen.

fread () Parametere

  • buffer: peker til minneblokken for å lagre objektene.
  • størrelse: Størrelsen på hvert objekt i byte.
  • count: Antall objekter som skal leses.
  • stream: Filstrømmen for å lese dataene fra.

fread () Returverdi

Den fread()funksjonen returnerer antallet objekter lese vellykket. Hvis det oppstår en feil eller slutten på filtilstanden, kan returverdien være mindre enn tellingen.

Eksempel 1: Hvordan fungerer fread () -funksjonen

 #include #include using namespace std; int main() ( FILE *fp; char buffer(100); fp = fopen("data.txt","rb"); while(!feof(fp)) ( fread(buffer,sizeof(buffer),1,fp); cout << buffer; ) return 0; )

Anta at filen inneholder følgende data:

 Dennis Ritchie: C Bjarne Stroustrup: C ++ Guido van Rossum: Python James Gosling: Java

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

 Dennis Ritchie: C Bjarne Stroustrup: C ++ Guido van Rossum: Python James Gosling: Java

Eksempel 2: Hvordan fungerer fread () -funksjonen når enten telling eller størrelse er null

 #include #include using namespace std; int main() ( FILE *fp; char buffer(100); int retVal; fp = fopen("data.txt","rb"); /* when count is zero */ retVal = fread(buffer,sizeof(buffer),0,fp); cout << "When count = 0, return value = " << retVal << endl; /* when size is zero */ retVal = fread(buffer,0,1,fp); cout << "When size = 0, return value = " << retVal << endl; return 0; )

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

 Når telling = 0, returverdi = 0 Når størrelse = 0, returverdi = 0

Interessante artikler...