std::basic_ofstream
Определено в заголовке <fstream> | ||
|---|---|---|
template<
class CharT,
class Traits = std::char_traits<CharT>
> class basic_ofstream : public std::basic_ostream<CharT, Traits>
|
Шаблон класса basic_ofstream реализует операции вывода высокого уровня для потоков, связанных с файлами. Он связывает буфер потока, связанный с файлом (std::basic_filebuf), с интерфейсом высокого уровня (std::basic_ostream).
Типичная реализация std::basic_ofstream содержит только один член данных без наследования: экземпляр std::basic_filebuf<CharT, Traits>.
Диаграмма наследования
Предоставляются несколько псевдонимов типов для общих типов символов:
Определено в заголовке <fstream> |
|
|---|---|
| Тип | Определение |
std::ofstream | std::basic_ofstream<char> |
std::wofstream | std::basic_ofstream<wchar_t> |
Типы членов
| Тип члена | Определение |
|---|---|
char_type | CharT |
traits_type | Traits; программа некорректна, если Traits::char_type не является CharT. |
int_type | Traits::int_type |
pos_type | Traits::pos_type |
off_type | Traits::off_type |
native_handle_type(C++26) | Тип, определяемый реализацией, который является TriviallyCopyable и semiregular |
Члены-функции
| создаёт поток файла (общедоступная функция-член) |
|
| (деструктор)
[виртуальный] (неявно объявлен) | уничтожает basic_ofstream и связанный буфер, закрывает файл (виртуальная общедоступная функция-член) |
|
(C++11) | перемещает поток файла (общедоступная функция-член) |
|
(C++11) | меняет местами два потока файлов (общедоступная функция-член) |
| возвращает объект исходного устройства файла (общедоступная функция-член) |
|
|
(C++26) | возвращает определяемый реализацией дескриптор (общедоступная функция-член) |
Операции с файлами |
|
| проверяет, есть ли у потока связанный файл (общедоступная функция-член) |
|
| открывает файл и связывает его с потоком (общедоступная функция-член) |
|
| закрывает связанный файл (общедоступная функция-член) |
|
Функции без указания класса
|
(C++11) | специализирует алгоритм std::swap (шаблон функции) |
Наследуется от std::basic_ostream
Члены-функции
Форматированный вывод |
|
| вставляет отформатированные данные (общедоступная функция-член std::basic_ostream<CharT,Traits>) |
|
Неформатированный вывод |
|
| вставляет символ (общедоступная функция-член std::basic_ostream<CharT,Traits>) |
|
| вставляет блоки символов (общедоступная функция-член std::basic_ostream<CharT,Traits>) |
|
Размещение |
|
| возвращает указатель позиции вывода (общедоступная функция-член std::basic_ostream<CharT,Traits>) |
|
| устанавливает указатель позиции вывода (общедоступная функция-член std::basic_ostream<CharT,Traits>) |
|
Разное |
|
| синхронизирует работу с основой устройства хранения (общедоступная функция-член std::basic_ostream<CharT,Traits>) |
|
Вложенные классы
| реализует базовую логику подготовки потока для операций вывода (общедоступный вложенный класс std::basic_ostream<CharT,Traits>) |
Наследуется от std::basic_ios
Типы членов
| Тип члена | Определение |
|---|---|
char_type | CharT |
traits_type | Traits |
int_type | Traits::int_type |
pos_type | Traits::pos_type |
off_type | Traits::off_type |
Члены-функции
Функции состояния |
|
| проверяет, не произошло ли ошибок, т.е. доступны операции ввода-вывода (публичная функция-член std::basic_ios<CharT,Traits>) |
|
| проверяет, достигнут ли конец файла (публичная функция-член std::basic_ios<CharT,Traits>) |
|
| проверяет, произошла ли ошибка (публичная функция-член std::basic_ios<CharT,Traits>) |
|
| проверяет, произошла ли невосстановимая ошибка (публичная функция-член std::basic_ios<CharT,Traits>) |
|
проверяет, произошла ли ошибка (синоним функции fail()) (публичная функция-член std::basic_ios<CharT,Traits>) |
|
проверяет, не произошло ли ошибок (синоним функции !fail()) (публичная функция-член std::basic_ios<CharT,Traits>) |
|
| возвращает флаги состояния (публичная функция-член std::basic_ios<CharT,Traits>) |
|
| устанавливает флаги состояния (публичная функция-член std::basic_ios<CharT,Traits>) |
|
| изменяет флаги состояния (публичная функция-член std::basic_ios<CharT,Traits>) |
|
Форматирование |
|
| копирует информацию о форматировании (публичная функция-член std::basic_ios<CharT,Traits>) |
|
| управляет символом заполнения (публичная функция-член std::basic_ios<CharT,Traits>) |
|
Разное |
|
| управляет маской исключений (публичная функция-член std::basic_ios<CharT,Traits>) |
|
| устанавливает локаль (публичная функция-член std::basic_ios<CharT,Traits>) |
|
| управляет связанным буфером потока (публичная функция-член std::basic_ios<CharT,Traits>) |
|
| управляет связанным потоком (публичная функция-член std::basic_ios<CharT,Traits>) |
|
| сужает символы (публичная функция-член std::basic_ios<CharT,Traits>) |
|
| расширяет символы (публичная функция-член std::basic_ios<CharT,Traits>) |
|
Наследуется от std::ios_base
Члены-функции
Форматирование |
|
| управляет флагами форматирования (публичная функция-член std::ios_base) |
|
| устанавливает определённый флаг форматирования (публичная функция-член std::ios_base) |
|
| сбрасывает определённый флаг форматирования (публичная функция-член std::ios_base) |
|
| управляет десятичной точностью операций с плавающей точкой (публичная функция-член std::ios_base) |
|
| управляет шириной поля (публичная функция-член std::ios_base) |
|
Локали |
|
| устанавливает локаль (публичная функция-член std::ios_base) |
|
| возвращает текущую локаль (публичная функция-член std::ios_base) |
|
Внутренний расширяемый массив |
|
|
[static] | возвращает уникальное целое число для всего приложения, которое безопасно использовать в качестве индекса к pword() и iword() (публичная статическая функция-член std::ios_base) |
| при необходимости изменяет размер внутреннего хранилища и предоставляет доступ к элементу типа long по заданному индексу (публичная функция-член std::ios_base) |
|
| при необходимости изменяет размер внутреннего хранилища и предоставляет доступ к элементу типа void* по заданному индексу (публичная функция-член std::ios_base) |
|
Разное |
|
| регистрирует функцию обратного вызова события (публичная функция-член std::ios_base) |
|
|
[static] | устанавливает, будут ли C++ и C библиотеки ввода-вывода взаимодействовать друг с другом (публичная статическая функция-член std::ios_base) |
Вложенные классы |
|
| исключение потока (публичный вложенный класс std::ios_base) |
|
| инициализирует стандартные объекты потока (публичный вложенный класс std::ios_base) |
|
Типы и константы членов |
|||||||||||||||||||||||||||||||||||||||
| Тип | Объяснение | ||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Тип режима открытия потока Также определены следующие константы:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
| Тип флагов форматирования Также определены следующие константы:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
| Тип состояния потока Также определены следующие константы:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
| Тип направления поиска Также определены следующие константы:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
| Указывает тип события (enum) |
|||||||||||||||||||||||||||||||||||||||
| Тип обратного вызова функции (typedef) |
|||||||||||||||||||||||||||||||||||||||
Примечания
| Макрос проверки наличия функции | Значение | Std | Функция |
|---|---|---|---|
__cpp_lib_fstream_native_handle | 202306L | (C++26) | Поддержка нативных дескрипторов |
Пример
#include <fstream>
#include <iostream>
#include <string>
int main()
{
std::string filename = "Test.b";
{
std::ofstream ostrm(filename, std::ios::binary);
double d = 3.14;
ostrm.write(reinterpret_cast<char*>(&d), sizeof d); // binary output
ostrm << 123 << "abc" << '\n'; // text output
}
// read back
std::ifstream istrm(filename, std::ios::binary);
double d;
istrm.read(reinterpret_cast<char*>(&d), sizeof d);
int n;
std::string s;
istrm >> n >> s;
std::cout << " read back: " << d << ' ' << n << ' ' << s << '\n';
}Вывод:
read back: 3.14 123 abc
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/basic_ofstream