Difference between revisions of "cpp/io/basic ofstream"
From cppreference.com
(Added example) |
Andreas Krug (Talk | contribs) m (headers sorted) |
||
(9 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
{{cpp/title|basic_ofstream}} | {{cpp/title|basic_ofstream}} | ||
{{cpp/io/basic_ofstream/navbar}} | {{cpp/io/basic_ofstream/navbar}} | ||
− | {{ddcl | header=fstream | | + | {{ddcl|header=fstream|1= |
− | template< | + | template< |
− | class CharT, | + | class CharT, |
− | class Traits | + | class Traits = std::char_traits<CharT> |
> class basic_ofstream : public std::basic_ostream<CharT, Traits> | > class basic_ofstream : public std::basic_ostream<CharT, Traits> | ||
}} | }} | ||
Line 10: | Line 10: | ||
The class template {{tt|basic_ofstream}} implements high-level output operations on file based streams. It interfaces a file-based streambuffer ({{lc|std::basic_filebuf}}) with the high-level interface of ({{lc|std::basic_ostream}}). | The class template {{tt|basic_ofstream}} implements high-level output operations on file based streams. It interfaces a file-based streambuffer ({{lc|std::basic_filebuf}}) with the high-level interface of ({{lc|std::basic_ostream}}). | ||
− | A typical implementation of {{tt|std::basic_ofstream}} holds only one non-derived data member: an instance of {{c|std::basic_filebuf<CharT, Traits>}}. | + | A typical implementation of {{tt|std::basic_ofstream}} holds only one non-derived data member: an instance of {{c/core|std::basic_filebuf<CharT, Traits>}}. |
{{inheritance diagram/std-basic_ofstream}} | {{inheritance diagram/std-basic_ofstream}} | ||
− | + | {{cpp/basic char typedefs|ofstream|fstream}} | |
− | {{ | + | {{cpp/io/member types|ofstream}} |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
===Member functions=== | ===Member functions=== | ||
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc inc | cpp/io/basic_fstream/dsc constructor | basic_ofstream}} | + | {{dsc inc|cpp/io/basic_fstream/dsc constructor|basic_ofstream}} |
− | {{dsc inc | cpp/io/basic_fstream/dsc destructor | basic_ofstream}} | + | {{dsc inc|cpp/io/basic_fstream/dsc destructor|basic_ofstream}} |
− | {{dsc inc | cpp/io/basic_fstream/dsc operator{{=}} | basic_ofstream}} | + | {{dsc inc|cpp/io/basic_fstream/dsc operator{{=}}|basic_ofstream}} |
− | {{dsc inc | cpp/io/basic_fstream/dsc swap | basic_ofstream}} | + | {{dsc inc|cpp/io/basic_fstream/dsc swap|basic_ofstream}} |
− | {{dsc inc | cpp/io/basic_fstream/dsc rdbuf | basic_ofstream}} | + | {{dsc inc|cpp/io/basic_fstream/dsc rdbuf|basic_ofstream}} |
+ | {{dsc inc|cpp/io/basic_ofstream/dsc native_handle}} | ||
− | {{dsc h2 | File operations }} | + | {{dsc h2|File operations}} |
− | {{dsc inc | cpp/io/basic_fstream/dsc is_open | basic_ofstream}} | + | {{dsc inc|cpp/io/basic_fstream/dsc is_open|basic_ofstream}} |
− | {{dsc inc | cpp/io/basic_fstream/dsc open | basic_ofstream}} | + | {{dsc inc|cpp/io/basic_fstream/dsc open|basic_ofstream}} |
− | {{dsc inc | cpp/io/basic_fstream/dsc close | basic_ofstream}} | + | {{dsc inc|cpp/io/basic_fstream/dsc close|basic_ofstream}} |
{{dsc end}} | {{dsc end}} | ||
===Non-member functions=== | ===Non-member functions=== | ||
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc inc | cpp/io/basic_fstream/dsc swap2 | basic_ofstream}} | + | {{dsc inc|cpp/io/basic_fstream/dsc swap2|basic_ofstream}} |
{{dsc end}} | {{dsc end}} | ||
− | |||
{{cpp/io/basic_ostream/inherit}} | {{cpp/io/basic_ostream/inherit}} | ||
{{cpp/io/basic_ios/inherit}} | {{cpp/io/basic_ios/inherit}} | ||
{{cpp/io/ios_base/inherit}} | {{cpp/io/ios_base/inherit}} | ||
+ | |||
+ | ===Notes=== | ||
+ | {{feature test macro|__cpp_lib_fstream_native_handle|std=C++26|value=202306L|native handles support}} | ||
===Example=== | ===Example=== | ||
{{example | {{example | ||
|code= | |code= | ||
− | |||
#include <fstream> | #include <fstream> | ||
− | #include < | + | #include <iostream> |
#include <string> | #include <string> | ||
− | + | int main() | |
− | + | { | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
std::string filename = "Test.b"; | std::string filename = "Test.b"; | ||
− | std::ofstream ostrm | + | { |
− | + | 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 | |
− | ostrm. | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
− | // | + | // 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'; | |
− | std::ifstream istrm | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | istrm >> | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
|output= | |output= | ||
− | + | read back: 3.14 123 abc | |
− | + | ||
− | + | ||
}} | }} | ||
− | + | {{langlinks|de|es|fr|it|ja|pt|ru|zh}} | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
Latest revision as of 08:36, 9 September 2023
Defined in header <fstream>
|
||
template< class 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>.
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 |
char_type
|
CharT
|
traits_type
|
Traits ; the program is ill-formed if Traits::char_type is not CharT .
|
int_type
|
Traits::int_type
|
pos_type
|
Traits::pos_type
|
off_type
|
Traits::off_type
|
native_handle_type (C++26)
|
implementation-defined type that is TriviallyCopyable and semiregular
|
[edit] Member functions
constructs the file stream (public member function) | |
(destructor) [virtual] (implicitly declared) |
destructs the basic_ofstream and the associated buffer, closes the file (virtual public member function) |
(C++11) |
moves the file stream (public member function) |
(C++11) |
swaps two file streams (public member function) |
returns the underlying raw file device object (public member function) | |
(C++26) |
returns the underlying implementation-defined handle (public member function) |
File operations | |
checks if the stream has an associated file (public member function) | |
opens a file and associates it with the stream (public member function) | |
closes the associated file (public member function) |
[edit] Non-member functions
specializes the std::swap algorithm (function template) |
Inherited from std::basic_ostream
Member functions
Formatted output | |
inserts formatted data (public member function of std::basic_ostream<CharT,Traits> )
| |
Unformatted output | |
inserts a character (public member function of std::basic_ostream<CharT,Traits> )
| |
inserts blocks of characters (public member function of std::basic_ostream<CharT,Traits> )
| |
Positioning | |
returns the output position indicator (public member function of std::basic_ostream<CharT,Traits> )
| |
sets the output position indicator (public member function of std::basic_ostream<CharT,Traits> )
| |
Miscellaneous | |
synchronizes with the underlying storage device (public member function of std::basic_ostream<CharT,Traits> )
|
Member classes
implements basic logic for preparation of the stream for output operations (public member class of std::basic_ostream<CharT,Traits> )
|
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 std::basic_ios<CharT,Traits> )
| |
checks if end-of-file has been reached (public member function of std::basic_ios<CharT,Traits> )
| |
checks if an error has occurred (public member function of std::basic_ios<CharT,Traits> )
| |
checks if a non-recoverable error has occurred (public member function of std::basic_ios<CharT,Traits> )
| |
checks if an error has occurred (synonym of fail()) (public member function of std::basic_ios<CharT,Traits> )
| |
checks if no error has occurred (synonym of ! fail()) (public member function of std::basic_ios<CharT,Traits> )
| |
returns state flags (public member function of std::basic_ios<CharT,Traits> )
| |
sets state flags (public member function of std::basic_ios<CharT,Traits> )
| |
modifies state flags (public member function of std::basic_ios<CharT,Traits> )
| |
Formatting | |
copies formatting information (public member function of std::basic_ios<CharT,Traits> )
| |
manages the fill character (public member function of std::basic_ios<CharT,Traits> )
| |
Miscellaneous | |
manages exception mask (public member function of std::basic_ios<CharT,Traits> )
| |
sets the locale (public member function of std::basic_ios<CharT,Traits> )
| |
manages associated stream buffer (public member function of std::basic_ios<CharT,Traits> )
| |
manages tied stream (public member function of std::basic_ios<CharT,Traits> )
| |
narrows characters (public member function of std::basic_ios<CharT,Traits> )
| |
widens characters (public member function of std::basic_ios<CharT,Traits> )
|
Inherited from std::ios_base
Member functions
Formatting | |
manages format flags (public member function of std::ios_base )
| |
sets specific format flag (public member function of std::ios_base )
| |
clears specific format flag (public member function of std::ios_base )
| |
manages decimal precision of floating point operations (public member function of std::ios_base )
| |
manages field width (public member function of std::ios_base )
| |
Locales | |
sets locale (public member function of std::ios_base )
| |
returns current locale (public member function of std::ios_base )
| |
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 )
|
resizes the private storage if necessary and access to the long element at the given index (public member function of std::ios_base )
| |
resizes the private storage if necessary and access to the void* element at the given index (public member function of std::ios_base )
| |
Miscellaneous | |
registers event callback function (public member function of std::ios_base )
| |
[static] |
sets whether C++ and C I/O libraries are interoperable (public static member function of std::ios_base )
|
Member classes | |
stream exception (public member class of std::ios_base )
| |
initializes standard stream objects (public member class of std::ios_base )
|
Member types and constants | |||||||||||||||||||||||||||||||||||||||
Type | Explanation | ||||||||||||||||||||||||||||||||||||||
stream open mode type
The following constants are also defined:
(typedef) | |||||||||||||||||||||||||||||||||||||||
formatting flags type
The following constants are also defined:
(typedef) | |||||||||||||||||||||||||||||||||||||||
state of the stream type
The following constants are also defined:
(typedef) | |||||||||||||||||||||||||||||||||||||||
seeking direction type
The following constants are also defined:
(typedef) | |||||||||||||||||||||||||||||||||||||||
specifies event type (enum) | |||||||||||||||||||||||||||||||||||||||
callback function type (typedef) |
[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