Namensräume
Varianten
Aktionen

std::fwrite

Von cppreference.com
< cpp‎ | io‎ | c
 
 
 
C-Style I/O
Typen und Objekte
Funktionen
Datei-Zugriff
Direkte Ein-/Ausgabe
fwrite
Unformatierte Ein-/Ausgabe
Formatierte Eingabe
(C++11)(C++11)(C++11)    
(C++11)(C++11)(C++11)    
 
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ärobjekte aus dem gegebenen Array buffer in den Ausgabestrom stream. Die Objekte werden so geschrieben, als ob jedes Objekt als ein Array von unsigned char neu interpretiert und std::fputc size Mal für jedes Objekt aufgerufen würde, um diese unsigned chars in stream in der angegebenen Reihenfolge zu schreiben. Der Dateipositionsanzeiger des Streams 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 Dateipositionsanzeigers des Streams nicht bestimmt.

Inhalt

[bearbeiten] Parameter

buffer - Zeiger auf das erste Objekt im zu schreibenden Array
size - Größe jedes Objekts
zählt - die Anzahl der zu schreibenden Objekte
stream - Ausgabestream, in den geschrieben werden soll

[bearbeiten] Rückgabewert

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

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

[bearbeiten] Beispiel

#include <array>
#include <cstdio>
#include <vector>
 
int main ()
{
    // write buffer to file
    if (std::FILE* f1 = std::fopen("file.bin", "wb"))
    {
        std::array<int, 3> v = {42, -1, 7}; // underlying storage of std::array is an array
        std::fwrite(v.data(), sizeof v[0], v.size(), f1);
        std::fclose(f1);
    }
 
    // read the same data and print it to the standard output
    if (std::FILE* f2 = std::fopen("file.bin", "rb"))
    {
        std::vector<int> rbuf(10); // underlying storage of std::vector is also an 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

[bearbeiten] Siehe auch

druckt formatierte Ausgabe nach stdout, einen Dateistream oder einen Puffer
(Funktion) [bearbeiten]
schreibt einen Zeichenstring in einen Dateistream
(function) [bearbeiten]
liest aus einer Datei
(function) [bearbeiten]
C-Dokumentation für fwrite