std::basic_fstream<CharT,Traits>::open (3) - Linux Manuals

std::basic_fstream<CharT,Traits>::open: std::basic_fstream<CharT,Traits>::open

NAME

std::basic_fstream<CharT,Traits>::open - std::basic_fstream<CharT,Traits>::open

Synopsis


void open( const char *filename, (1)
ios_base::openmode mode = ios_base::in|ios_base::out );
void open( const std::filesystem::path::value_type *filename, (2) (since C++17)
ios_base::openmode mode = ios_base::in|ios_base::out );
void open( const std::string &filename, (3) (since C++11)
ios_base::openmode mode = ios_base::in|ios_base::out );
void open( const std::filesystem::path &filename, (4) (since C++17)
ios_base::openmode mode = ios_base::in|ios_base::out );


Opens and associates the file with name filename with the file stream.
Calls setstate(failbit) on failure.


Calls clear() on success. (since C++11)


1-2) Effectively calls 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)
3-4) Effectively calls (1-2) as if by open(filename.c_str(), mode).

Parameters


filename - the name of the file to be opened
           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
mode - 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

Return value


(none)

Example


// Run this code


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

See also


        checks if the stream has an associated file
is_open (public member function)
        closes the associated file
close (public member function)
        opens a file and configures it as the associated character sequence
open (public member function of std::basic_filebuf<CharT,Traits>)