Namespaces
Variants

std:: fwrite

From cppreference.net
< cpp ‎ | io ‎ | c
Definiert in Header <cstdio>
std:: size_t fwrite ( const void * buffer, std:: size_t size, std:: size_t count, std:: FILE * stream ) ;

Schreibt bis zu count binäre Objekte aus dem gegebenen Array buffer in den Ausgabestrom stream . Die Objekte werden geschrieben, als ob jedes Objekt als ein Array von unsigned char reinterpretiert würde und std::fputc size Mal für jedes Objekt aufgerufen würde, um diese unsigned char s in stream zu schreiben, in Reihenfolge. Die Dateipositionsanzeige für den Strom wird um die Anzahl der geschriebenen Zeichen vorgerückt.

Wenn die Objekte nicht TriviallyCopyable sind, ist das Verhalten undefiniert.

Wenn ein Fehler auftritt, ist der resultierende Wert des Dateipositionsindikators für den Stream unbestimmt.

Inhaltsverzeichnis

Parameter

buffer - Zeiger auf das erste Objekt im zu schreibenden Array
size - Größe jedes Objekts
count - Anzahl der zu schreibenden Objekte
stream - Ausgabedateistream zum Schreiben

Rückgabewert

Anzahl der erfolgreich geschriebenen Objekte, die geringer sein kann als count falls ein Fehler aufgetreten ist.

Wenn size oder count null ist, gibt fwrite null zurück und führt keine weitere Aktion aus.

Beispiel

#include <array>
#include <cstdio>
#include <vector>
int main ()
{
    // Puffer in Datei schreiben
    if (std::FILE* f1 = std::fopen("file.bin", "wb"))
    {
        std::array<int, 3> v = {42, -1, 7}; // zugrundeliegender Speicher von std::array ist ein Array
        std::fwrite(v.data(), sizeof v[0], v.size(), f1);
        std::fclose(f1);
    }
    // dieselben Daten einlesen und auf die Standardausgabe drucken
    if (std::FILE* f2 = std::fopen("file.bin", "rb"))
    {
        std::vector<int> rbuf(10); // zugrundeliegender Speicher von std::vector ist ebenfalls ein Array
        std::size_t sz = std::fread(rbuf.data(), sizeof rbuf[0], rbuf.size(), f2);
        std::fclose(f2);
        for (std::size_t n = 0; n < sz; ++n)
            std::printf("%d\n", rbuf[n]);
    }
}

Ausgabe:

42
-1
7

Siehe auch

gibt formatierte Ausgabe an stdout , einen Dateistrom oder einen Puffer aus
(Funktion)
schreibt eine Zeichenkette in einen Dateistrom
(Funktion)
liest aus einer Datei
(Funktion)
C-Dokumentation für fwrite