Der C fread() ist eine Standardbibliotheksfunktion, die zum Lesen der angegebenen Datenmenge aus einem Dateistream verwendet wird. Die in fread() definierte Funktion liest die angegebene Anzahl von Elementen einer bestimmten Größe aus dem Dateistream und speichert sie im Pufferspeicher. Die Gesamtzahl der von der Funktion fread() gelesenen Bytes ist die Anzahl der gelesenen Elemente multipliziert mit der Größe jedes Elements in Bytes.
Syntax von C fread()
size_t fread (void * buffer , size_t size , size_t count , FILE * stream );>
Die Dateipositionsanzeige wird automatisch um die Anzahl der gelesenen Bytes nach vorne verschoben. Wenn die gelesenen Objekte nicht problemlos kopierbar sind, wie z. B. Strukturen oder komplexe Datentypen, verhält es sich nicht richtig.
Parameter
- Puffer: Bezieht sich auf den Zeiger auf den Pufferspeicherblock, in dem die gelesenen Daten gespeichert werden. Größe: Bezieht sich auf die Größe jedes Elements in Bytes. count: Bezieht sich auf die Anzahl der zu lesenden Elemente. stream: Es bezieht sich auf den Zeiger auf den Dateistream.
Rückgabewert
- Die Funktion gibt die Anzahl der Elemente zurück, die erfolgreich aus der Datei gelesen wurden.
- Wenn der Rückgabewert kleiner als die Anzahl ist, bedeutet dies, dass ein Fehler aufgetreten ist oder das Ende der Datei erreicht wurde.
- Wenn der Wert von size oder count Null ist, gibt fread() Null zurück und führt keine andere Aktion aus.
Notiz: Die Funktion fread() selbst bietet keine Möglichkeit, zwischen Dateiende und Fehler zu unterscheiden. Mithilfe von feof und ferror lässt sich feststellen, was passiert ist.
Beispiele für C fread()
Beispiel 1
Die folgenden Programme veranschaulichen die Funktion 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;> }> |
>
>
Angenommen, die Datei g4g.txt enthält die folgenden Daten:
Geeks : DS-ALgo Gfg : DP Contribute : writearticle>
Nach dem Ausführen des Programms erfolgt dann die Ausgabe
Bytes zum String-Python
Geeks : DS-ALgo Gfg : DP Contribute : writearticle>
Beispiel 2
Dieses C-Programm demonstriert die Verwendung der Funktion fread(), wenn die Größe oder Anzahl der Datei gleich 0 ist.
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;> }> |
>
wie viele Wochen ein Monat hat
>Ausgabe
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 |
>
>Ausgabe
v1: 1 2 3 4 5 6 v2: 1 2 3 4 6 v2:- 5 5 5 5 5 5 5 5 5>