std::fwrite
From cppreference.com
C++
Feature test macros (C++20)
Concepts library (C++20)
Metaprogramming library (C++11)
Ranges library (C++20)
Filesystem library (C++17)
Concurrency support library (C++11)
Execution control library (C++26)
Input/output library
Print functions (C++23)
Buffers
(C++23)
(C++98/26*)
(C++20)
Streams
Abstractions
File I/O
String I/O
Array I/O
(C++23)
(C++23)
(C++23)
(C++98/26*)
(C++98/26*)
(C++98/26*)
Synchronized Output
(C++20)
Types
Error category interface
(C++11)
(C++11)
C-style I/O
Types and objects
Functions
File access
Direct input/output
fwrite
Unformatted input/output
Formatted input
(C++11)(C++11)(C++11)
(C++11)(C++11)(C++11)
Formatted output
(C++11)
(C++11)
File positioning
Error handling
Operations on files
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 chars 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.
Contents
[edit] Parameters
buffer
-
pointer to the first 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
[edit] Return value
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.
[edit] Example
Run this code
#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]); } }
Output:
42 -1 7
[edit] See also
C documentation for fwrite