C ++ fread () - C ++ Standardbibliothek

Die Funktion fread () in C ++ liest eine bestimmte Anzahl von Zeichen aus dem angegebenen Eingabestream.

Prototyp fread ()

 size_t fread (void * buffer, size_t size, size_t count, FILE * stream);

Die fread()Funktion liest die Anzahl der Objekte mit jeweils einer Größe und einem Byte aus dem angegebenen Eingabestream. Es ähnelt dem Aufruf von fgetc () size times, um jedes Objekt zu lesen. Entsprechend der Anzahl der gelesenen Zeichen wird die Dateipositionsanzeige erhöht.

Der resultierende Wert des Dateipositionsindikators für den Stream ist unbestimmt, wenn beim Lesen der Datei ein Fehler auftritt.

Wenn die Objekte nicht trivial kopierbar sind, ist das Verhalten undefiniert.

Wenn die Größe oder Anzahl Null ist, gibt ein Aufruf von freadNull zurück und es wird keine andere Aktion ausgeführt.

Es ist in der Header-Datei definiert.

fread () Parameter

  • buffer: Zeiger auf den Speicherblock zum Speichern der Objekte.
  • Größe: Größe jedes Objekts in Bytes.
  • count: Die Anzahl der zu lesenden Objekte.
  • stream: Der Dateistream, aus dem die Daten gelesen werden sollen.

fread () Rückgabewert

Die fread()Funktion gibt die Anzahl der erfolgreich gelesenen Objekte zurück. Wenn ein Fehler oder ein Zustand am Ende der Datei auftritt, ist der Rückgabewert möglicherweise kleiner als count.

Beispiel 1: Funktionsweise der Funktion fread ()

 #include #include using namespace std; int main() ( FILE *fp; char buffer(100); fp = fopen("data.txt","rb"); while(!feof(fp)) ( fread(buffer,sizeof(buffer),1,fp); cout << buffer; ) return 0; )

Angenommen, die Datei enthält folgende Daten:

 Dennis Ritchie: C Bjarne Stroustrup: C ++ Guido van Rossum: Python James Gosling: Java

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

 Dennis Ritchie: C Bjarne Stroustrup: C ++ Guido van Rossum: Python James Gosling: Java

Beispiel 2: Wie die Funktion fread () funktioniert, wenn entweder count oder size Null ist

 #include #include using namespace std; int main() ( FILE *fp; char buffer(100); int retVal; fp = fopen("data.txt","rb"); /* when count is zero */ retVal = fread(buffer,sizeof(buffer),0,fp); cout << "When count = 0, return value = " << retVal << endl; /* when size is zero */ retVal = fread(buffer,0,1,fp); cout << "When size = 0, return value = " << retVal << endl; return 0; )

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

 Wenn count = 0, Rückgabewert = 0 Wenn size = 0, Rückgabewert = 0

Interessante Beiträge...