std::basic_fstream::open

From cppreference.com

void open( const char *filename,
           ios_base::openmode mode = ios_base::in|ios_base::out );
void open( const std::string &filename,                                  
           ios_base::openmode mode = ios_base::in|ios_base::out );
(since C++11)

Opens and associates file with the file stream. Calls clear() on success or setstate(failbit) on failure.

The first version effectively calls rdbuf()->open(filename, mode).

The second version effectively calls open(filename.c_str(), mode).

Contents

[edit] Parameters

filename - the name of the file to be opened
mode - specifies stream open mode. It is bitmask type, 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

[edit] Return value

(none)

[edit] Example

#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';
}


[edit] See also

checks if the stream has an associated file
(public member function)
closes the associated file
(public member function)