Namespaces
Variants
Actions

std::basic_ofstream

From cppreference.com
< cpp‎ | io
 
 
 
 
Defined in header <fstream>
template<

    class CharT,
    class Traits =std::char_traits<CharT>

>class basic_ofstream :publicstd::basic_ostream<CharT, Traits>

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>.

cpp/io/ios basecpp/io/basic ioscpp/io/basic ostreamstd-basic ofstream-inheritance.svg

Inheritance diagram

Several typedefs for common character types are provided:

Defined in header <fstream>
Type Definition
std::ofstreamstd::basic_ofstream<char>
std::wofstreamstd::basic_ofstream<wchar_t>

Contents

[edit]Member types

Member type Definition
char_typeCharT[edit]
traits_typeTraits; the program is ill-formed if Traits::char_type is not CharT.[edit]
int_typeTraits::int_type[edit]
pos_typeTraits::pos_type[edit]
off_typeTraits::off_type[edit]
native_handle_type(C++26)implementation-defined type that is TriviallyCopyable and semiregular[edit]

[edit]Member functions

constructs the file stream
(public member function)[edit]
(destructor)
[virtual](implicitly declared)
destructs the basic_ofstream and the associated buffer, closes the file
(virtual public member function)[edit]
(C++11)
moves the file stream
(public member function)[edit]
(C++11)
swaps two file streams
(public member function)[edit]
returns the underlying raw file device object
(public member function)[edit]
returns the underlying implementation-defined handle
(public member function)[edit]
File operations
checks if the stream has an associated file
(public member function)[edit]
opens a file and associates it with the stream
(public member function)[edit]
closes the associated file
(public member function)[edit]

[edit]Non-member functions

specializes the std::swap algorithm
(function template)[edit]

Inherited from std::basic_ostream

Member functions

Formatted output
inserts formatted data
(public member function of std::basic_ostream<CharT,Traits>)[edit]
Unformatted output
inserts a character
(public member function of std::basic_ostream<CharT,Traits>)[edit]
inserts blocks of characters
(public member function of std::basic_ostream<CharT,Traits>)[edit]
Positioning
returns the output position indicator
(public member function of std::basic_ostream<CharT,Traits>)[edit]
sets the output position indicator
(public member function of std::basic_ostream<CharT,Traits>)[edit]
Miscellaneous
synchronizes with the underlying storage device
(public member function of std::basic_ostream<CharT,Traits>)[edit]

Member classes

implements basic logic for preparation of the stream for output operations
(public member class of std::basic_ostream<CharT,Traits>)[edit]

Inherited from std::basic_ios

Member types

Member type Definition
char_typeCharT
traits_typeTraits
int_typeTraits::int_type
pos_typeTraits::pos_type
off_typeTraits::off_type

Member functions

State functions
checks if no error has occurred i.e. I/O operations are available
(public member function of std::basic_ios<CharT,Traits>)[edit]
checks if end-of-file has been reached
(public member function of std::basic_ios<CharT,Traits>)[edit]
checks if an error has occurred
(public member function of std::basic_ios<CharT,Traits>)[edit]
checks if a non-recoverable error has occurred
(public member function of std::basic_ios<CharT,Traits>)[edit]
checks if an error has occurred (synonym of fail())
(public member function of std::basic_ios<CharT,Traits>)[edit]
checks if no error has occurred (synonym of !fail())
(public member function of std::basic_ios<CharT,Traits>)[edit]
returns state flags
(public member function of std::basic_ios<CharT,Traits>)[edit]
sets state flags
(public member function of std::basic_ios<CharT,Traits>)[edit]
modifies state flags
(public member function of std::basic_ios<CharT,Traits>)[edit]
Formatting
copies formatting information
(public member function of std::basic_ios<CharT,Traits>)[edit]
manages the fill character
(public member function of std::basic_ios<CharT,Traits>)[edit]
Miscellaneous
manages exception mask
(public member function of std::basic_ios<CharT,Traits>)[edit]
sets the locale
(public member function of std::basic_ios<CharT,Traits>)[edit]
manages associated stream buffer
(public member function of std::basic_ios<CharT,Traits>)[edit]
manages tied stream
(public member function of std::basic_ios<CharT,Traits>)[edit]
narrows characters
(public member function of std::basic_ios<CharT,Traits>)[edit]
widens characters
(public member function of std::basic_ios<CharT,Traits>)[edit]

Inherited from std::ios_base

Member functions

Formatting
manages format flags
(public member function of std::ios_base)[edit]
sets specific format flag
(public member function of std::ios_base)[edit]
clears specific format flag
(public member function of std::ios_base)[edit]
manages decimal precision of floating point operations
(public member function of std::ios_base)[edit]
manages field width
(public member function of std::ios_base)[edit]
Locales
sets locale
(public member function of std::ios_base)[edit]
returns current locale
(public member function of std::ios_base)[edit]
Internal extensible array
[static]
returns a program-wide unique integer that is safe to use as index to pword() and iword()
(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 std::ios_base)[edit]
resizes the private storage if necessary and access to the void* element at the given index
(public member function of std::ios_base)[edit]
Miscellaneous
registers event callback function
(public member function of std::ios_base)[edit]
sets whether C++ and C I/O libraries are interoperable
(public static member function of std::ios_base)[edit]
Member classes
stream exception
(public member class of std::ios_base)[edit]
initializes standard stream objects
(public member class of std::ios_base)[edit]

Member types and constants

Type Explanation
stream open mode type

The following constants are also defined:

Constant Explanation[edit]
app seek to the end of stream before each write[edit]
binary open in binary mode[edit]
in open for reading[edit]
out open for writing[edit]
trunc discard the contents of the stream when opening[edit]
ate seek to the end of stream immediately after open[edit]
noreplace(C++23) open in exclusive mode[edit]

(typedef)[edit]
formatting flags type

The following constants are also defined:

Constant Explanation[edit]
dec use decimal base for integer I/O: see std::dec[edit]
oct use octal base for integer I/O: see std::oct[edit]
hex use hexadecimal base for integer I/O: see std::hex[edit]
basefielddec | oct | hex. Useful for masking operations[edit]
left left adjustment (adds fill characters to the right): see std::left[edit]
right right adjustment (adds fill characters to the left): see std::right[edit]
internal internal adjustment (adds fill characters to the internal designated point): see std::internal[edit]
adjustfieldleft | right | internal. Useful for masking operations[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]
floatfieldscientific | fixed. Useful for masking operations[edit]
boolalpha insert and extract bool type in alphanumeric format: see std::boolalpha[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]
showpos generate a + character for non-negative numeric output: see std::showpos[edit]
skipws skip leading whitespace before certain input operations: see std::skipws[edit]
unitbuf flush the output after each output operation: see std::unitbuf[edit]
uppercase replace certain lowercase letters with their uppercase equivalents in certain output operations: see std::uppercase[edit]

(typedef)[edit]
state of the stream type

The following constants are also defined:

Constant Explanation[edit]
goodbit no error[edit]
badbit irrecoverable stream error[edit]
failbit input/output operation failed (formatting or extraction error)[edit]
eofbit associated input sequence has reached end-of-file[edit]

(typedef)[edit]
seeking direction type

The following constants are also defined:

Constant Explanation[edit]
beg the beginning of a stream[edit]
end the ending of a stream[edit]
cur the current position of stream position indicator[edit]

(typedef)[edit]
specifies event type
(enum)[edit]
callback function type
(typedef)[edit]

[edit]Notes

Feature-test macroValueStdFeature
__cpp_lib_fstream_native_handle202306L(C++26)native handles support

[edit]Example

#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 backstd::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
close