std:: fwrite
|
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.
InhaltParameter
RückgabewertAnzahl der erfolgreich geschriebenen Objekte, die nur dann kleiner als Wenn Beispiel
Diesen Code ausführen
#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
| ||||||||||||||||||||