void open( const char* filename,
std::ios_base::openmode mode
= std::ios_base::in | std::ios_base::out );
| (1) | |
void open( const std::filesystem::path::value_type* filename,
std::ios_base::openmode mode
= std::ios_base::in | std::ios_base::out );
| (2) | (since C++17) |
void open( const std::string& filename,
std::ios_base::openmode mode
= std::ios_base::in | std::ios_base::out );
| (3) | (since C++11) |
void open( const std::filesystem::path& filename,
std::ios_base::openmode mode
= std::ios_base::in | std::ios_base::out );
| (4) | (since C++17) |
Opens and associates the file with name filename with the file stream.
Calls clear() on success. Calls setstate(failbit) on failure.
rdbuf()->open(filename, mode) (see std::basic_filebuf::open for the details on the effects of that call). Overload (2) is only provided if std::filesystem::path::value_type is not char. (since C++17)
open(filename.c_str(), mode). | filename | - | the name of the file to be opened | ||||||||||||||||
| mode | - | specifies stream open mode. It is a BitmaskType, the following constants are defined:
|
(none).
#include <string>
#include <fstream>
#include <iostream>
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 of mode in overload (1)was missing (it is present in the synopsis) | added |
| checks if the stream has an associated file (public member function) |
|
| closes the associated file (public member function) |
|
| opens a file and configures it as the associated character sequence (public member function of std::basic_filebuf<CharT,Traits>) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/basic_fstream/open