The C fread() je štandardná knižničná funkcia používaná na čítanie daného množstva údajov zo súborového toku. Funkcia fread() definovaná v , číta daný počet prvkov špecifickej veľkosti zo súborového toku a ukladá ho do vyrovnávacej pamäte. Celkový počet bajtov prečítaných funkciou fread() je počet prečítaných prvkov vynásobený veľkosťou každého prvku v bajtoch.
Syntax C fread()
size_t fread (void * buffer , size_t size , size_t count , FILE * stream );>
Indikátor polohy súboru sa automaticky posunie dopredu o počet prečítaných bajtov. Ak čítané objekty nie sú triviálne kopírovateľné, ako sú štruktúry alebo komplexné dátové typy, potom sa nesprávajú správne.
Parametre
- buffer: Vzťahuje sa na ukazovateľ na blok vyrovnávacej pamäte, kde budú uložené načítané dáta. veľkosť: Vzťahuje sa na veľkosť každého prvku v bajtoch. počet: Vzťahuje sa na počet prvkov, ktoré sa majú prečítať. stream: Vzťahuje sa na ukazovateľ na tok súboru.
Návratová hodnota
- Funkcia vráti počet prvkov, ktoré boli úspešne načítané zo súboru.
- Ak je návratová hodnota menšia ako počet, znamená to, že sa vyskytla chyba alebo sa dostala na koniec súboru.
- Ak je hodnota size alebo count nula, fread() vráti nulu a nevykoná žiadnu inú akciu.
Poznámka: Funkcia fread() sama osebe neposkytuje spôsob, ako rozlíšiť medzi koncom súboru a chybou, na určenie, ktorá sa vyskytla, možno použiť feof a ferror.
Príklady C fread()
Príklad 1
Nižšie uvedené programy ilustrujú funkciu 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;> }> |
>
>
Predpokladajme, že súbor g4g.txt obsahuje nasledujúce údaje:
Geeks : DS-ALgo Gfg : DP Contribute : writearticle>
Potom po spustení programu bude výstup
programovanie struct pole c
Geeks : DS-ALgo Gfg : DP Contribute : writearticle>
Príklad 2
Tento program v jazyku C demonštruje použitie funkcie fread(), keď sa veľkosť alebo počet súboru rovná 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;> }> |
>
>Výkon
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 |
>
>Výkon
rýchle triedenie
v1: 1 2 3 4 5 6 v2: 1 2 3 4 6 v2:- 5 5 5 5 5 5 5 5 5>