C ++ fread () - C ++ standaardbibliotheek

De functie fread () in C ++ leest een bepaald aantal tekens uit de opgegeven invoerstroom.

fread () prototype

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

De fread()functie leest het aantal objecten, elk met een grootte van bytes, uit de gegeven invoerstroom. Het is vergelijkbaar met het aanroepen van fgetc () size times om elk object te lezen. Afhankelijk van het aantal gelezen tekens, wordt de positie-indicator van het bestand verhoogd.

De resulterende waarde van de bestandspositie-indicator voor de stream is onbepaald als er een fout optreedt tijdens het lezen van het bestand.

Als de objecten niet triviaal kopieerbaar zijn, is het gedrag ongedefinieerd.

Als de grootte of het aantal nul is, freadretourneert een aanroep naar nul en wordt er geen andere actie uitgevoerd.

Het wordt gedefinieerd in het header-bestand.

fread () Parameters

  • buffer: Pointer naar het geheugenblok om de objecten op te slaan.
  • size: grootte van elk object in bytes.
  • count: het aantal objecten dat moet worden gelezen.
  • stream: de bestandsstream waarvan de gegevens moeten worden gelezen.

fread () Retourwaarde

De fread()functie retourneert het aantal succesvol gelezen objecten. Als er een fout optreedt of als er een einde van het bestand optreedt, is de geretourneerde waarde mogelijk kleiner dan het aantal.

Voorbeeld 1: hoe fread () functie werkt

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

Stel dat het bestand de volgende gegevens bevat:

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

Wanneer u het programma uitvoert, is de uitvoer:

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

Voorbeeld 2: hoe de functie fread () werkt als het aantal of de grootte nul is

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

Wanneer u het programma uitvoert, is de uitvoer:

 Wanneer aantal = 0, retourneer waarde = 0. Wanneer grootte = 0, retourneer waarde = 0

Interessante artikelen...