The C fread () yra standartinė bibliotekos funkcija, naudojama nuskaityti nurodytą duomenų kiekį iš failų srauto. Apibrėžta viduje, funkcija fread() nuskaito nurodytą tam tikro dydžio elementų skaičių iš failo srauto ir išsaugo jį buferinėje atmintyje. Bendras funkcijos fread() nuskaitytų baitų skaičius yra nuskaitytų elementų skaičius, padaugintas iš kiekvieno elemento dydžio baitais.
C fread() sintaksė
size_t fread (void * buffer , size_t size , size_t count , FILE * stream );>
Failo padėties indikatorius automatiškai perkeliamas į priekį pagal nuskaitytų baitų skaičių. Jei skaitomų objektų, pvz., struktūrų ar sudėtingų duomenų tipų, negalima trivialiai nukopijuoti, jis elgiasi netinkamai.
Parametrai
- buferis: tai žymeklis į buferinės atminties bloką, kuriame bus saugomi nuskaityti duomenys. dydis: nurodo kiekvieno elemento dydį baitais. count: nurodo skaitomų elementų skaičių. srautas: nurodo failo srauto žymeklį.
Grąžinimo vertė
- Funkcija grąžina elementų, kurie sėkmingai nuskaityti iš failo, skaičių.
- Jei grąžinama vertė yra mažesnė už skaičių, tai reiškia, kad įvyko klaida arba ji pasiekė failo pabaigą.
- Jei dydžio arba skaičiaus reikšmė yra nulis, fread() grąžina nulį ir neatlieka jokio kito veiksmo.
Pastaba: Pati funkcija fread() nesuteikia būdo atskirti failo pabaigą ir klaidą, feof ir ferror gali būti naudojami norint nustatyti, kas įvyko.
C fread() pavyzdžiai
1 pavyzdys
Žemiau pateiktos programos iliustruoja fread() funkciją.
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;> }> |
>
>
Tarkime, faile g4g.txt yra šie duomenys:
Geeks : DS-ALgo Gfg : DP Contribute : writearticle>
Tada, paleidus programą, išvestis bus
primityvūs duomenų tipai Java
Geeks : DS-ALgo Gfg : DP Contribute : writearticle>
2 pavyzdys
Ši C programa parodo, kaip naudojama fread() funkcija, kai failo dydis arba skaičius yra lygus 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;> }> |
>
>Išvestis
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, vektorius |
>
int eilutėje
>Išvestis
v1: 1 2 3 4 5 6 v2: 1 2 3 4 6 v2:- 5 5 5 5 5 5 5 5 5>