C fread() Funktion
Det C fread() er en standard biblioteksfunktion, der bruges til at læse den givne mængde data fra en filstrøm. Defineret indeni læser fread()-funktionen det givne antal elementer af specifik størrelse fra filstrømmen og gemmer det i bufferhukommelsen. Det samlede antal bytes læst af funktionen fread() er antallet af læste elementer ganget med størrelsen af hvert element i bytes.
Syntaks for C fread()
size_t fread (void * buffer , size_t size , size_t count , FILE * stream );
Filpositionsindikatoren flyttes automatisk fremad med antallet af læste bytes. Hvis objekterne, der læses, ikke er trivielt kopierbare, såsom strukturer eller komplekse datatyper, opfører det sig ikke korrekt.
Parametre
- buffer: Det refererer til markøren til bufferhukommelsesblokken, hvor de læste data vil blive lagret. størrelse: Det refererer til størrelsen af hvert element i bytes. count: Det refererer til antallet af elementer, der skal læses. stream: Det refererer til markøren til filstrømmen.
Returværdi
- Funktionen returnerer antallet af elementer, der er læst med succes fra filen.
- Hvis returværdien er mindre end antallet, betyder det, at der er opstået en fejl, eller at den er nået til slutningen af filen.
- Hvis værdien af størrelse eller antal er nul, returnerer fread() nul og udfører ingen anden handling.
Bemærk: fread()-funktionen i sig selv giver ikke en måde at skelne mellem end-of-file og fejl, feof og ferror kan bruges til at bestemme, hvad der skete.
Eksempler på C fread()
Eksempel 1
Nedenstående programmer illustrerer fread()-funktionen.
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;> }> |
Antag, at filen g4g.txt indeholder følgende data:
Geeks : DS-ALgo Gfg : DP Contribute : writearticle
Derefter, efter at have kørt programmet, vil outputtet være
Geeks : DS-ALgo Gfg : DP Contribute : writearticle
Eksempel 2
Dette C-program demonstrerer brugen af fread()-funktionen, når filens størrelse eller antal er lig 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;> }> |
Produktion
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