std::basic_fstream<CharT,Traits>:: open
|
void
open
(
const
char
*
filename,
std::
ios_base
::
openmode
mode
|
(1) | |
|
void
open
(
const
std
::
filesystem
::
path
::
value_type
*
filename,
std::
ios_base
::
openmode
mode
|
(2) | (начиная с C++17) |
|
void
open
(
const
std::
string
&
filename,
std::
ios_base
::
openmode
mode
|
(3) | (начиная с C++11) |
|
void
open
(
const
std::
filesystem
::
path
&
filename,
std::
ios_base
::
openmode
mode
|
(4) | (начиная с C++17) |
Открывает и связывает файл с именем filename с файловым потоком.
При успехе вызывает clear ( ) . При неудаче вызывает setstate ( failbit ) .
std::filesystem::path::value_type
не является
char
.
(начиная с C++17)
Содержание |
Параметры
| filename | - | имя файла для открытия | ||||||||||||||||
| mode | - |
определяет режим открытия потока. Это
BitmaskType
, определены следующие константы:
|
Пример
#include <fstream> #include <iostream> #include <string> 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); // создать файл 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'; }
Отчеты о дефектах
Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 22 | C++98 | было неясно, как изменяется состояние ошибки при успешном открытии | состояние ошибки остается неизменным |
| LWG 409 | C++98 | состояние ошибки оставалось неизменным при успешном открытии | оно сбрасывается [1] |
| LWG 460 | C++98 |
аргумент по умолчанию для
mode
в перегрузке
(1)
отсутствовал (он присутствует в синопсисе ) |
добавлен |
- ↑ Решение проблемы LWG #22 переопределено.
Смотрите также
|
проверяет, есть ли у потока связанный файл
(public member function) |
|
|
закрывает связанный файл
(public member function) |
|
|
открывает файл и настраивает его как связанную символьную последовательность
(public member function of
std::basic_filebuf<CharT,Traits>
)
|