The C fread () ir standarta bibliotēkas funkcija, ko izmanto, lai nolasītu noteiktu datu apjomu no failu straumes. Definēta iekšpusē, funkcija fread() nolasa no faila straumes norādīto noteikta izmēra elementu skaitu un saglabā to buferatmiņā. Kopējais baitu skaits, ko nolasa funkcija fread () ir nolasīto elementu skaits, kas reizināts ar katra elementa lielumu baitos.
C fread() sintakse
size_t fread (void * buffer , size_t size , size_t count , FILE * stream );>
Faila pozīcijas indikators tiek automātiski pārvietots uz priekšu par nolasīto baitu skaitu. Ja nolasāmos objektus nevar triviāli kopēt, piemēram, struktūras vai sarežģīti datu tipi, tas nedarbojas pareizi.
Parametri
- buferis: tas attiecas uz rādītāju uz bufera atmiņas bloku, kurā tiks saglabāti nolasītie dati. izmērs: tas attiecas uz katra elementa lielumu baitos. skaits: tas attiecas uz nolasāmo elementu skaitu. straume: tas attiecas uz faila straumes rādītāju.
Atdeves vērtība
- Funkcija atgriež to elementu skaitu, kas veiksmīgi nolasīti no faila.
- Ja atgriešanas vērtība ir mazāka par skaitu, tas nozīmē, ka ir radusies kļūda vai tā ir sasniegusi faila beigas.
- Ja lieluma vai skaita vērtība ir nulle, fread () atgriež nulli un neveic nekādas citas darbības.
Piezīme: Funkcija fread() pati par sevi nenodrošina veidu, kā atšķirt faila beigas no kļūdas, feof un ferror var izmantot, lai noteiktu, kas noticis.
C fread() piemēri
1. piemērs
Tālāk norādītās programmas ilustrē fread() funkciju.
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;> }> |
>
>
Pieņemsim, ka failā g4g.txt ir šādi dati:
Geeks : DS-ALgo Gfg : DP Contribute : writearticle>
Pēc tam pēc programmas palaišanas izvade būs
python atlikuma operators
Geeks : DS-ALgo Gfg : DP Contribute : writearticle>
2. piemērs
Šī C programma parāda funkcijas fread () izmantošanu, ja faila lielums vai skaits ir vienāds ar 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;> }> |
>
>Izvade
ievietošanas kārtošana
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, vektors |
>
>Izvade
v1: 1 2 3 4 5 6 v2: 1 2 3 4 6 v2:- 5 5 5 5 5 5 5 5 5>