std::basic_ofstream
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
basic_ofstream
 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)
std::basic_ofstream
 
 
 
 
 Member functions
(C++11)
(C++11)
(C++26)
 File operations
 Non-member functions
(C++11)
Defined in header 
 
 
<fstream> 
 template<
 
 
    class CharT,
    class Traits = std::char_traits <CharT>
The class template basic_ofstream implements high-level output operations on file based streams. It interfaces a file-based streambuffer (std::basic_filebuf ) with the high-level interface of (std::basic_ostream ).
A typical implementation of std::basic_ofstream holds only one non-derived data member: an instance of std::basic_filebuf <CharT, Traits>.
std-basic ofstream-inheritance.svg
Inheritance diagram
Several typedefs for common character types are provided:
Defined in header 
<fstream>   Type
 Definition
std::ofstream
 std::basic_ofstream<char>
std::wofstream
 std::basic_ofstream<wchar_t>
Contents
[edit] Member types
 Member type
 Definition
native_handle_type(C++26)
 implementation-defined type that is TriviallyCopyable and semiregular [edit] 
[edit] Member functions
(destructor)
[virtual] (implicitly declared)
basic_ofstream and the associated buffer, closes the file (virtual public member function) [edit]
File operations
[edit] Non-member functions
Inherited from std::basic_ostream
Member functions
Formatted output
Unformatted output
Positioning
 
 returns the output position indicator 
(public member function of
(public member function of
std::basic_ostream<CharT,Traits>) [edit] 
 
 sets the output position indicator 
(public member function of
(public member function of
std::basic_ostream<CharT,Traits>) [edit] 
Miscellaneous
 
 synchronizes with the underlying storage device 
(public member function of
(public member function of
std::basic_ostream<CharT,Traits>) [edit] 
Member classes
Inherited from std::basic_ios
Member types
 Member type
 Definition
char_type
 CharT
traits_type
 Traits
int_type
 Traits::int_type
pos_type
 Traits::pos_type
off_type
 Traits::off_type
Member functions
State functions
 
 checks if no error has occurred i.e. I/O operations are available 
(public member function of
(public member function of
std::basic_ios<CharT,Traits>) [edit] 
 
 checks if end-of-file has been reached 
(public member function of
(public member function of
std::basic_ios<CharT,Traits>) [edit] 
 
 checks if a non-recoverable error has occurred 
(public member function of
(public member function of
std::basic_ios<CharT,Traits>) [edit] 
 
 checks if an error has occurred (synonym of fail() ) 
(public member function of
(public member function of
std::basic_ios<CharT,Traits>) [edit] 
 
 checks if no error has occurred (synonym of 
(public member function of
!fail() ) (public member function of
std::basic_ios<CharT,Traits>) [edit] 
Formatting
Miscellaneous
Inherited from std::ios_base
Member functions
Formatting
 
 manages decimal precision of floating point operations 
(public member function of
(public member function of
std::ios_base) [edit] 
Locales
Internal extensible array
[static]
(public static member function of
std::ios_base) [edit] 
 
 resizes the private storage if necessary and access to the long element at the given index 
(public member function of
(public member function of
std::ios_base) [edit] 
 
 resizes the private storage if necessary and access to the void* element at the given index 
(public member function of
(public member function of
std::ios_base) [edit] 
Miscellaneous
[static]
(public static member function of
std::ios_base) [edit] 
Member classes
Member types and constants
 Type
 Explanation
 
 stream open mode type
(typedef) [edit]
 
 
 formatting flags type
(typedef) [edit]  
 
 
 state of the stream type
(typedef) [edit]  
 
 
 seeking direction type
(typedef) [edit]  
 
 
 specifies event type 
(enum) [edit]  
 
 
 callback function type 
(typedef) [edit]  
The following constants are also defined:
 Constant
 Explanation[edit] 
 (typedef) [edit]
The following constants are also defined:
 Constant
 Explanation[edit] 
 internal
 internal adjustment (adds fill characters to the internal designated point): see std::internal [edit] 
 scientific
 generate floating point types using scientific notation, or hex notation if combined with fixed: see std::scientific [edit] 
 fixed
 generate floating point types using fixed notation, or hex notation if combined with scientific: see std::fixed [edit] 
 showbase
 generate a prefix indicating the numeric base for integer output, require the currency indicator in monetary I/O: see std::showbase [edit] 
 showpoint
 generate a decimal-point character unconditionally for floating-point number output: see std::showpoint [edit] 
 uppercase
 replace certain lowercase letters with their uppercase equivalents in certain output operations: see std::uppercase [edit] 
 (typedef) [edit]
The following constants are also defined:
 Constant
 Explanation[edit] 
 (typedef) [edit]
The following constants are also defined:
 Constant
 Explanation[edit] 
 (typedef) [edit]
(enum) [edit]
(typedef) [edit]
[edit] Notes
| Feature-test macro | Value | Std | Feature | 
|---|---|---|---|
| __cpp_lib_fstream_native_handle | 202306L | (C++26) | native handles support | 
[edit] Example
Run this code
#include <fstream> #include <iostream> #include <string> int main() { std::string filename = "Test.b"; { std::ofstream ostrm(filename, std::ios::binary); double d = 3.14; ostrm.write(reinterpret_cast<char*>(&d), sizeof d); // binary output ostrm << 123 << "abc" << '\n'; // text output } // read back std::ifstream istrm(filename, std::ios::binary); double d; istrm.read(reinterpret_cast<char*>(&d), sizeof d); int n; std::string s; istrm >> n >> s; std::cout << " read back: " << d << ' ' << n << ' ' << s << '\n'; }
Output:
read back: 3.14 123 abc