std::basic_ifstream<CharT,Traits>::open
void open( const char* filename,
std::ios_base::openmode mode
= std::ios_base::in );
| (1) | |
void open( const std::filesystem::path::value_type* filename,
std::ios_base::openmode mode
= std::ios_base::in );
| (2) | (с C++17) |
void open( const std::string& filename,
std::ios_base::openmode mode
= std::ios_base::in );
| (3) | (с C++11) |
void open( const std::filesystem::path& filename,
std::ios_base::openmode mode
= std::ios_base::in );
| (4) | (с C++17) |
Открывает и связывает файл с именем filename с потоком файла.
При успехе вызывает clear(). При ошибке вызывает setstate(failbit).
1,2) Эффективно вызывает
rdbuf()->open(filename, mode | ios_base::in) (подробнее о последствиях этого вызова см. в std::basic_filebuf::open). Перегрузка (2) предоставляется только в том случае, если std::filesystem::path::value_type не char. (с C++17)
3,4) Эффективно вызывает (1,2), как если бы это было
open(filename.c_str(), mode). Параметры
| filename | - | имя файла, который необходимо открыть | ||||||||||||||||
| mode | - | определяет режим открытия потока. Это BitmaskType, определены следующие константы:
|
Возвращаемое значение
(нет)
Пример
Отчёты об ошибках
Следующие корректирующие отчёты об ошибках были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применено к | Поведение как опубликовано | Корректное поведение |
|---|---|---|---|
| LWG 22 | C++98 | не было ясно, как состояние ошибки изменяется при успешном открытии | состояние ошибки не изменяется |
| LWG 409 | C++98 | состояние ошибки не изменялось при успешном открытии | оно сбрасывается[1] |
- Решение проблемы LWG № 22 переопределяется.
См. также
| проверяет, ассоциирован ли с потоком файл (публичный член-функция) |
|
| закрывает ассоциированный файл (публичный член-функция) |
|
| открывает файл и настраивает его в качестве ассоциированной последовательности символов (публичный член-функция 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_ifstream/open