De C fread() är en standardbiblioteksfunktion som används för att läsa den givna mängden data från en filström. Definerad inuti läser funktionen fread() det givna antalet element av specifik storlek från filströmmen och lagrar det i buffertminnet. Det totala antalet byte som läses av funktionen fread() är antalet lästa element multiplicerat med storleken på varje element i byte.
Syntax för C fread()
size_t fread (void * buffer , size_t size , size_t count , FILE * stream );>
Filpositionsindikatorn flyttas automatiskt framåt med antalet lästa byte. Om objekten som läses inte är trivialt kopierbara, såsom strukturer eller komplexa datatyper, fungerar det inte korrekt.
Parametrar
- buffert: Det hänvisar till pekaren till buffertminnesblocket där läsdata kommer att lagras. storlek: Det hänvisar till storleken på varje element i byte. count: Det hänvisar till antalet element som ska läsas. stream: Det hänvisar till pekaren till filströmmen.
Returvärde
- Funktionen returnerar antalet element som läses framgångsrikt från filen.
- Om returvärdet är mindre än antalet betyder det att ett fel har inträffat eller att det har nått slutet av filen.
- Om värdet på storlek eller antal är noll, returnerar fread() noll och utför ingen annan åtgärd.
Notera: fread()-funktionen i sig ger inte ett sätt att skilja mellan slutet av filen och felet, feof och ferror kan användas för att avgöra vad som inträffade.
Exempel på C fread()
Exempel 1
Nedanstående program illustrerar funktionen 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;> }> |
>
>
Anta att filen g4g.txt innehåller följande data:
Geeks : DS-ALgo Gfg : DP Contribute : writearticle>
Sedan, efter att ha kört programmet, blir utgången
c++ set
Geeks : DS-ALgo Gfg : DP Contribute : writearticle>
Exempel 2
Detta C-program visar användningen av funktionen fread() när filens storlek eller antal är lika med 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;> }> |
>
>
konvertera int till sträng javaProduktion
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 |
>
>Produktion
v1: 1 2 3 4 5 6 v2: 1 2 3 4 6 v2:- 5 5 5 5 5 5 5 5 5>