Spec-Zone.ru › C++

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 - задает режим открытия потока. Это тип битовой маски; определены следующие константы:
Константа Описание
app перед каждой записью перейти в конец потока
binary открыть в двоичном режиме
in открыть для чтения
out открыть для записи
trunc отбросить содержимое потока при открытии
ate сразу после открытия перейти в конец потока
noreplace (C++23) открыть в эксклюзивном режиме

Пример

Отчеты об ошибках

Следующие отчеты об ошибках, изменяющие поведение, были применены задним числом к ранее опубликованным стандартам C++.

Отчет об ошибке Применяется к Поведение согласно опубликованной версии Правильное поведение
LWG 22 C++98 не было ясно, как изменяется состояние ошибки при успешном открытии состояние ошибки не изменяется
LWG 409 C++98 состояние ошибки не изменялось при успешном открытии оно сбрасывается[1]
  1. Решение по вопросу LWG № 22 отменяется.

См. также

is_open
проверяет, связан ли поток с файлом
(открытая функция-член)
close
закрывает связанный файл
(открытая функция-член)
open
открывает файл и настраивает его как связанную последовательность символов
(открытая функция-член std::basic_filebuf<CharT,Traits>)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/basic_ifstream/open

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API