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