C ++ fread () - C ++ Standardbibliotek

Fread () -funktionen i C ++ läser ett specificerat antal tecken från den angivna ingångsströmmen.

fread () prototyp

 size_t fread (ogiltig * buffert, size_t storlek, storlek_t antal, FILE * stream);

Den fread()funktion läser räknevärdet antal objekt, var och en av storlek storlek bytes från den givna ingångsströmmen. Det liknar att anropa fgetc () storlekstider för att läsa varje objekt. Beroende på antalet lästa tecken ökas filpositionens indikator.

Det resulterande värdet av filpositionens indikator för strömmen är obestämd om något fel uppstår när filen läses.

Om objekten inte är trivialt kopierbara är beteendet odefinierat.

Om storleken eller antalet är noll freadreturnerar ett samtal till noll och ingen annan åtgärd utförs.

Det definieras i rubrikfilen.

fread () Parametrar

  • buffert: pekare till minnesblocket för att lagra objekten.
  • storlek: Storleken på varje objekt i byte.
  • count: Antalet objekt som ska läsas.
  • stream: Filströmmen för att läsa data från.

fread () Returvärde

De fread()returnerar antalet objekt läsa framgångsrikt. Om ett fel eller filtillståndet inträffar kan returvärdet vara mindre än antalet.

Exempel 1: Hur funktionen fread () fungerar

 #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; )

Antag att filen innehåller följande data:

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

När du kör programmet blir resultatet:

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

Exempel 2: Hur funktionen fread () fungerar när antingen räkningen eller storleken är noll

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

 När räkning = 0, returvärde = 0 När storlek = 0, returvärde = 0

Intressanta artiklar...