std::basic_ifstream::basic_ifstream
From cppreference.com
< cpp | io | basic ifstream
basic_ifstream(); |
(1) | |
explicit basic_ifstream( const char* filename, std::ios_base::openmode mode = ios_base::in ); |
(2) | |
explicit basic_ifstream( const std::filesystem::path::value_type* filename, std::ios_base::openmode mode = ios_base::in ); |
(3) | (since C++17) |
explicit basic_ifstream( const std::string& filename, std::ios_base::openmode mode = ios_base::in ); |
(4) | (since C++11) |
explicit basic_ifstream( const std::filesystem::path& filename, std::ios_base::openmode mode = ios_base::in ); |
(5) | (since C++17) |
basic_ifstream( basic_ifstream&& other ); |
(6) | (since C++11) |
basic_ifstream( const basic_ifstream& rhs) = delete; |
(7) | (since C++11) |
Constructs new file stream.
1) Default constructor: constructs a stream that is not associated with a file: default-constructs the std::basic_filebuf and constructs the base with the pointer to this default-constructed std::basic_filebuf member.
2-3) First, performs the same steps as the default constructor, then associates the stream with a file by calling rdbuf()->open(filename, mode | std::ios_base::in) (see std::basic_filebuf::open for the details on the effects of that call). If the open() call returns a null pointer, sets setstate(failbit). Overload (3) is only provided if std::filesystem::path::value_type is not char. (since C++17)
4-5) Same as basic_ifstream(filename.c_str(), mode).
6) Move constructor. First, move-constructs the base class from
other
(which does not affect the rdbuf()
pointer), then move-constructs the std::basic_filebuf member, then calls this->set_rdbuf() to install the new basic_filebuf
as the rdbuf() pointer in the base class.7) The copy-constructor is deleted: this class is not copyable.
Parameters
filename | - | the name of the file to be opened | ||||||||||||||
mode | - | specifies stream open mode. It is bitmask type, the following constants are defined:
| ||||||||||||||
other | - | another file stream to use as source |
Example
Run this code
#include <fstream> #include <utility> #include <string> int main() { std::ifstream f0; std::ifstream f1("test.bin", std::ios::binary); std::string name = "example.txt"; std::ifstream f2(name); std::ifstream f3(std::move(f1)); }
See also
opens a file and associates it with the stream (public member function) | |
opens a file and configures it as the associated character sequence (public member function of std::basic_filebuf ) | |
replaces the rdbuf without clearing its error state (protected member function) | |
constructs the object (public member function of std::basic_istream ) |