Defined in header <cstdio> | ||
---|---|---|
std::size_t fwrite( const void* buffer, std::size_t size, std::size_t count, std::FILE* stream ); |
Writes up to count
binary objects from the given array buffer
to the output stream stream
. The objects are written as if by reinterpreting each object as an array of unsigned char
and calling std::fputc
size
times for each object to write those unsigned char
s into stream
, in order. The file position indicator for the stream is advanced by the number of characters written.
If the objects are not TriviallyCopyable, the behavior is undefined.
If an error occurs, the resulting value of the file position indicator for the stream is indeterminate.
buffer | - | pointer to the first object object in the array to be written |
size | - | size of each object |
count | - | the number of the objects to be written |
stream | - | output file stream to write to |
Number of objects written successfully, which may be less than count
if an error occurred.
If size
or count
is zero, fwrite
returns zero and performs no other action.
#include <cstdio> #include <vector> #include <array> 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]); } } }
Output:
42 -1 7
(C++11) | prints formatted output to stdout , a file stream or a buffer (function) |
writes a character string to a file stream (function) |
|
reads from a file (function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/io/c/fwrite