std::basic_ifstream<CharT,Traits>::open
From cppreference.com
< cpp | io | basic ifstream
C++
Feature test macros (C++20)
Concepts library (C++20)
Metaprogramming library (C++11)
Ranges library (C++20)
Filesystem library (C++17)
Concurrency support library (C++11)
Execution control library (C++26)
Input/output library
Print functions (C++23)
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)
std::basic_ifstream
Member functions
(C++11)
(C++11)
(C++26)
File operations
basic_ifstream::open
Non-member functions
(C++11)
void open( const char* filename,
= std::ios_base::in );
(1)
= std::ios_base::in );
void open( const std::filesystem::path::value_type* filename,
= std::ios_base::in );
(2)
(since C++17)
= std::ios_base::in );
void open( const std::string & filename,
= std::ios_base::in );
(3)
(since C++11)
= std::ios_base::in );
void open( const std::filesystem::path & filename,
= std::ios_base::in );
(4)
(since C++17)
= std::ios_base::in );
Opens and associates the file with name filename with the file stream.
Calls clear() on success. Calls setstate(failbit) on failure.
1,2) Effectively calls rdbuf()->open(filename, mode | ios_base::in) (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).
Contents
[edit] Parameters
filename
-
the name of the file to be opened
mode
-
specifies stream open mode. It is a BitmaskType, 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
noreplace (C++23)
open in exclusive mode
[edit] Example
This section is incomplete
Reason: no example
Reason: no example
[edit] Defect reports
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] |
- ↑ The resolution of LWG issue #22 is overridden.