table of contents
        
      
      
    | std::fwrite(3) | C++ Standard Libary | std::fwrite(3) | 
NAME¶
std::fwrite - std::fwrite
Synopsis¶
 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.
Parameters¶
 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
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.
Example¶
// Run this code
  
   #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
See also¶
 printf
  
   fprintf prints formatted output to stdout, a file stream or a buffer
  
   sprintf (function)
  
   snprintf
  
   (C++11)
  
   fputs writes a character string to a file stream
  
   (function)
  
   fread reads from a file
  
   (function)
| 2022.07.31 | http://cppreference.com |