Namespaces
Variants

std::ios_base:: openmode

From cppreference.net
typedef /* implementation defined */ openmode ;
static constexpr openmode app = /* implementation defined */ ;

static constexpr openmode binary = /* implementation defined */ ;
static constexpr openmode in = /* implementation defined */ ;
static constexpr openmode out = /* implementation defined */ ;
static constexpr openmode trunc = /* implementation defined */ ;

static constexpr openmode ate = /* implementation defined */ ;
static constexpr openmode noreplace = /* implementation defined */ ;
(начиная с C++23)

Определяет доступные флаги открытия файлов. Это BitmaskType , определены следующие константы:

Константа Объяснение
app переход в конец потока перед каждой записью
binary открытие в бинарном режиме
in открытие для чтения
out открытие для записи
trunc удаление содержимого потока при открытии
ate переход в конец потока сразу после открытия
noreplace (C++23) открытие в эксклюзивном режиме

Пример

#include <fstream>
#include <iostream>
#include <string>
int main()
{
    const char* fname = "unique_name.txt";
    // запись во временный потоковый объект
    std::fstream(fname, std::ios::out | std::ios::trunc) << "Hi";
    std::string s;
    std::fstream(fname, std::ios::in) >> s;
    std::cout << s << '\n';
}

Вывод:

Hi

Смотрите также

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