I/O manipulators | ||||
Print functions(C++23) | ||||
C-style I/O | ||||
Buffers | ||||
(C++23) | ||||
(C++98/26*) | ||||
(C++20) | ||||
Streams | ||||
Abstractions | ||||
File I/O | ||||
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) |
Member functions | ||||
(C++11) | ||||
(C++11) | ||||
(C++26) | ||||
File operations | ||||
basic_fstream::open | ||||
Non-member functions | ||||
(C++11) |
void open(constchar* filename, =std::ios_base::in|std::ios_base::out); | (1) | |
void open(const std::filesystem::path::value_type* filename, =std::ios_base::in|std::ios_base::out); | (2) | (since C++17) |
void open(conststd::string& filename, =std::ios_base::in|std::ios_base::out); | (3) | (since C++11) |
void open(conststd::filesystem::path& filename, =std::ios_base::in|std::ios_base::out); | (4) | (since C++17) |
Opens and associates the file with namefilename with the file stream.
Callsclear() on success. Callssetstate(failbit) on failure.
std::filesystem::path::value_type
is notchar.(since C++17)Contents |
filename | - | the name of the file to be opened | ||||||||||||||||
mode | - | specifies stream open mode. It is aBitmaskType, the following constants are defined:
|
#include <fstream>#include <iostream>#include <string> int main(){std::string filename="example.123"; std::fstream fs; fs.open(filename); if(!fs.is_open()){ fs.clear(); fs.open(filename, std::ios::out);// create file fs.close(); fs.open(filename);} std::cout<<std::boolalpha;std::cout<<"fs.is_open() = "<< fs.is_open()<<'\n';std::cout<<"fs.good() = "<< fs.good()<<'\n';}
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|---|---|---|
LWG 22 | C++98 | it was unclear how error state changes upon a successful open | the error state is unchanged |
LWG 409 | C++98 | the error state was unchanged upon a successful open | it is cleared[1] |
LWG 460 | C++98 | the default argument ofmode in overload(1) was missing (it is present in thesynopsis) | added |
checks if the stream has an associated file (public member function)[edit] | |
closes the associated file (public member function)[edit] | |
opens a file and configures it as the associated character sequence (public member function of std::basic_filebuf<CharT,Traits> )[edit] |