Difference between revisions of "cpp/io/ios base/openmode"
From cppreference.com
m (→Example: out flag is redundant) |
(There is a 'See also' section.) |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
{{dcl begin}} | {{dcl begin}} | ||
{{dcl| | {{dcl| | ||
− | typedef /*implementation defined*/ openmode; | + | typedef /* implementation defined */ openmode; |
}} | }} | ||
{{dcl|1= | {{dcl|1= | ||
− | static constexpr openmode app = /*implementation defined*/ | + | static constexpr openmode app = /* implementation defined */; |
− | static constexpr openmode binary = /*implementation defined*/ | + | static constexpr openmode binary = /* implementation defined */; |
− | static constexpr openmode in = /*implementation defined*/ | + | static constexpr openmode in = /* implementation defined */; |
− | static constexpr openmode out = /*implementation defined*/ | + | static constexpr openmode out = /* implementation defined */; |
− | static constexpr openmode trunc = /*implementation defined*/ | + | static constexpr openmode trunc = /* implementation defined */; |
− | static constexpr openmode ate = /*implementation defined*/ | + | static constexpr openmode ate = /* implementation defined */; |
}} | }} | ||
{{dcl|since=c++23|1= | {{dcl|since=c++23|1= | ||
− | static constexpr openmode noreplace = /*implementation defined*/ | + | static constexpr openmode noreplace = /* implementation defined */; |
}} | }} | ||
{{dcl end}} | {{dcl end}} | ||
Line 26: | Line 26: | ||
|code= | |code= | ||
#include <fstream> | #include <fstream> | ||
+ | #include <iostream> | ||
+ | #include <string> | ||
int main() | int main() | ||
{ | { | ||
− | std:: | + | const char* fname = "unique_name.txt"; |
− | + | ||
+ | // write to a temporary stream object | ||
+ | std::fstream(fname, std::ios::out {{!}} std::ios::trunc) << "Hi"; | ||
+ | |||
+ | std::string s; | ||
+ | std::fstream(fname, std::ios::in) >> s; | ||
+ | std::cout << s << '\n'; | ||
} | } | ||
|output= | |output= | ||
+ | Hi | ||
}} | }} | ||
Latest revision as of 17:43, 20 July 2023
typedef /* implementation defined */ openmode; |
||
static constexpr openmode app = /* implementation defined */; static constexpr openmode binary = /* implementation defined */; |
||
static constexpr openmode noreplace = /* implementation defined */; |
(since C++23) | |
Specifies available file open flags. It is a BitmaskType, the following constants are defined:
Constant | Explanation |
app | seek to the end of stream before each write |
binary | open in binary mode |
in | open for reading |
out | open for writing |
trunc | discard the contents of the stream when opening |
ate | seek to the end of stream immediately after open |
noreplace (C++23) | open in exclusive mode |
[edit] Example
Run this code
#include <fstream> #include <iostream> #include <string> int main() { const char* fname = "unique_name.txt"; // write to a temporary stream object std::fstream(fname, std::ios::out | std::ios::trunc) << "Hi"; std::string s; std::fstream(fname, std::ios::in) >> s; std::cout << s << '\n'; }
Output:
Hi
[edit] See also
opens a file and configures it as the associated character sequence (public member function of std::basic_filebuf<CharT,Traits> )
| |
constructs a basic_stringbuf object (public member function of std::basic_stringbuf<CharT,Traits,Allocator> )
|