logo

C fread() Functie

De C fread() is een standaardbibliotheekfunctie die wordt gebruikt om de gegeven hoeveelheid gegevens uit een bestandsstroom te lezen. De functie fread() is gedefinieerd in de functie fread() en leest het opgegeven aantal elementen van een specifieke grootte uit de bestandsstroom en slaat deze op in het buffergeheugen. Het totale aantal bytes dat door de functie fread() wordt gelezen, is het aantal gelezen elementen vermenigvuldigd met de grootte van elk element in bytes.

Syntaxis van C fread()

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

De bestandspositie-indicator wordt automatisch naar voren verplaatst met het aantal gelezen bytes. Als de objecten die worden gelezen niet op triviale wijze kunnen worden gekopieerd, zoals structuren of complexe gegevenstypen, gedraagt ​​het zich niet correct.



Parameters

    buffer: Het verwijst naar de verwijzing naar het buffergeheugenblok waar de gelezen gegevens worden opgeslagen. size: Het verwijst naar de grootte van elk element in bytes. count: Het verwijst naar het aantal te lezen elementen. stream: Het verwijst naar de verwijzing naar de bestandsstream.

Winstwaarde

  • De functie retourneert het aantal elementen dat met succes uit het bestand is gelezen.
  • Als de geretourneerde waarde kleiner is dan het aantal, betekent dit dat er een fout is opgetreden of dat het einde van het bestand is bereikt.
  • Als de waarde van size of count nul is, retourneert fread() nul en voert geen andere actie uit.

Opmerking: De functie fread() zelf biedt geen manier om onderscheid te maken tussen end-of-file en error; feof en ferror kunnen worden gebruikt om te bepalen welke er is opgetreden.

Voorbeelden van C fread()

voorbeeld 1

De onderstaande programma's illustreren de functie fread().

C








// C program to illustrate fread() function> #include> int> main()> {> >// File pointer> >FILE>* filePointer;> >// Buffer to store the read data> >char> buffer[100];> >// 'g4g.txt' file is opened in read mode> >filePointer =>fopen>(>'g4g.txt'>,>'r'>);> > >// Data is read from the file into the buffer> >// sizeof(buffer) specifies the size of each element to> >// be read 1 is the number of elements to read> >// filePointer is the file to read from> >while> (!>feof>(filePointer)) {> >fread>(buffer,>sizeof>(buffer), 1, filePointer);> >// Print the read data> >printf>(>'%s'>, buffer);> >}> >fclose>(filePointer);> >return> 0;> }>

>

>

Stel dat het bestand g4g.txt de volgende gegevens bevat:

Geeks : DS-ALgo Gfg : DP Contribute : writearticle>

Vervolgens zal, na het uitvoeren van het programma, de uitvoer zijn

hoeveel 0 op een miljard
Geeks : DS-ALgo Gfg : DP Contribute : writearticle>

Voorbeeld 2

Dit C-programma demonstreert het gebruik van de functie fread() wanneer de bestandsgrootte of het aantal gelijk is aan 0.

C




// C program to illustrate fread() function> // when size of the file or the value of count is equal to 0> #include> int> main()> {> >// File pointer> >FILE>* filePointer;> >// Buffer to store the read data> >char> buffer[100];> >// 'g4g.txt' file is opened in read mode> >filePointer =>fopen>(>'g4g.txt'>,>'r'>);> >// Case when count is equal to 0> >printf>(>'count = 0, return value = %zu '>,> >fread>(buffer,>sizeof>(buffer), 0, filePointer));> >// Case when size is equal to 0> >printf>(>'size = 0, return value = %zu '>,> >fread>(buffer, 0, 1, filePointer));> >return> 0;> }>

>

>

converteer tekenreeks naar int
Uitvoer

count = 0, return value = 0 size = 0, return value = 0>

C++




// C++ program to illustrate the vector container> #include> #include> using> namespace> std;> int> main()> {> >// 1d vector with initialization list> >vector<>int>>v1 = { 1, 2, 3, 4, 5 };> >// 2d vector with size and element value initialization> >vectorint>> v2(3,vector (3, 5)); // waarden toevoegen met push_back() v1.push_back(6); // v1 afdrukken met size() cout<< 'v1: '; for (int i = 0; i cout << v1[i] << ' '; } cout << endl; // deleting value usign erase and iterators v1.erase(v1.begin() + 4); // printing v1 using iterators cout << 'v2: '; for (auto i = v1.begin(); i != v1.end(); i++) { cout << *i << ' '; } cout << endl; // printing v2 using range based for loop cout << 'v2:-' << endl; for (auto i : v2) { for (auto j : i) { cout << j << ' '; } cout << endl; } return 0; }>

>

>

Uitvoer

v1: 1 2 3 4 5 6 v2: 1 2 3 4 6 v2:- 5 5 5 5 5 5 5 5 5>