The C fread() je standardna funkcija knjižnice, ki se uporablja za branje dane količine podatkov iz toka datoteke. Funkcija fread(), definirana znotraj, prebere dano število elementov določene velikosti iz datotečnega toka in jih shrani v vmesni pomnilnik. Skupno število bajtov, ki jih prebere funkcija fread(), je število prebranih elementov, pomnoženo z velikostjo vsakega elementa v bajtih.
Sintaksa C fread()
size_t fread (void * buffer , size_t size , size_t count , FILE * stream );>
Indikator položaja datoteke se samodejno premakne naprej za število prebranih bajtov. Če predmeti, ki se berejo, niso trivialno primerni za kopiranje, kot so strukture ali kompleksni podatkovni tipi, potem se ne obnaša pravilno.
Parametri
- medpomnilnik: Nanaša se na kazalec na pomnilniški blok medpomnilnika, kjer bodo shranjeni prebrani podatki. velikost: Nanaša se na velikost vsakega elementa v bajtih. count: Nanaša se na število elementov, ki jih je treba prebrati. tok: Nanaša se na kazalec na tok datoteke.
Povratna vrednost
- Funkcija vrne število elementov, ki so bili uspešno prebrani iz datoteke.
- Če je vrnjena vrednost manjša od števila, to pomeni, da je prišlo do napake ali da je datoteka dosegla konec.
- Če je vrednost velikosti ali števila nič, fread() vrne nič in ne izvede nobenega drugega dejanja.
Opomba: Sama funkcija fread() ne omogoča razlikovanja med koncem datoteke in napako, feof in ferror se lahko uporabita za ugotavljanje, kaj se je zgodilo.
Primeri C fread()
Primer 1
Spodnji programi ponazarjajo funkcijo 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;> }> |
>
>
Recimo, da datoteka g4g.txt vsebuje naslednje podatke:
Geeks : DS-ALgo Gfg : DP Contribute : writearticle>
Nato bo po zagonu programa rezultat
java programska polja
Geeks : DS-ALgo Gfg : DP Contribute : writearticle>
Primer 2
Ta program C prikazuje uporabo funkcije fread(), ko je velikost ali število datotek enako 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;> }> |
jdbc
>
>Izhod
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, vektor |
>
>Izhod
v1: 1 2 3 4 5 6 v2: 1 2 3 4 6 v2:- 5 5 5 5 5 5 5 5 5>