std:: basic_fstream
|
Определено в заголовочном файле
<fstream>
|
||
|
template
<
class
CharT,
|
||
Шаблон класса
basic_fstream
реализует высокоуровневые операции ввода/вывода для файловых потоков. Он связывает файловый буфер потока (
std::basic_filebuf
) с высокоуровневым интерфейсом (
std::basic_iostream
).
Типичная реализация
std::basic_fstream
содержит только один непроизводный член данных: экземпляр
std::
basic_filebuf
<
CharT, Traits
>
.
Диаграмма наследования
Предоставлены несколько typedef для распространённых символьных типов:
|
Определено в заголовочном файле
<fstream>
|
|
| Тип | Определение |
std::fstream
|
std :: basic_fstream < char > |
std::wfstream
|
std :: basic_fstream < 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
|
Функции-члены
|
конструирует файловый поток
(public member function) |
|
|
(destructor)
[virtual]
(implicitly declared)
|
уничтожает объект
basic_fstream
и связанный буфер, закрывает файл
(virtual public member function) |
|
(C++11)
|
перемещает файловый поток
(public member function) |
|
(C++11)
|
обменивает два файловых потока
(public member function) |
|
возвращает базовый объект файлового устройства
(public member function) |
|
|
(C++26)
|
возвращает базовый дескриптор, определяемый реализацией
(public member function) |
Операции с файлами |
|
|
проверяет, ассоциирован ли поток с файлом
(public member function) |
|
|
открывает файл и ассоциирует его с потоком
(public member function) |
|
|
закрывает ассоциированный файл
(public member function) |
|
Функции, не являющиеся членами класса
|
(C++11)
|
специализирует алгоритм
std::swap
(шаблон функции) |
Унаследовано от std:: basic_istream
Функции-члены
Форматированный ввод |
|
|
извлекает форматированные данные
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
Неформатированный ввод |
|
|
извлекает символы
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
|
читает следующий символ без его извлечения
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
|
возвращает символ обратно в поток
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
|
помещает символ обратно во входной поток
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
|
извлекает символы до нахождения заданного символа
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
|
извлекает и отбрасывает символы до нахождения заданного символа
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
|
извлекает блоки символов
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
|
извлекает уже доступные блоки символов
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
|
возвращает количество символов, извлеченных последней операцией неформатированного ввода
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
Позиционирование |
|
|
возвращает индикатор позиции ввода
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
|
устанавливает индикатор позиции ввода
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
Прочие функции |
|
|
синхронизирует с базовым устройством хранения
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
Классы-члены
|
реализует базовую логику подготовки потока к операциям ввода
(публичный класс-член
std::basic_istream<CharT,Traits>
)
|
Унаследовано от 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) |
|||||||||||||||||||||||||||||||||||||||
Примечания
| Макрос тестирования возможностей | Значение | Стандарт | Возможность |
|---|---|---|---|
__cpp_lib_fstream_native_handle
|
202306L
|
(C++26) | Поддержка нативных дескрипторов |
Пример
#include <fstream> #include <iostream> #include <string> int main() { std::string filename{"test.bin"}; std::fstream s{filename, s.binary | s.trunc | s.in | s.out}; if (!s.is_open()) std::cout << "failed to open " << filename << '\n'; else { // запись double d{3.14}; s.write(reinterpret_cast<char*>(&d), sizeof d); // бинарный вывод s << 123 << "abc"; // текстовый вывод // для fstream это перемещает указатель позиции файла (и put, и get) s.seekp(0); // чтение d = 2.71828; s.read(reinterpret_cast<char*>(&d), sizeof d); // бинарный ввод int n; std::string str; if (s >> n >> str) // текстовый ввод std::cout << "read back from file: " << d << ' ' << n << ' ' << str << '\n'; } }
Вывод:
read back from file: 3.14 123 abc
Смотрите также
|
чтение данных из потока ввода-вывода в строку
(шаблон функции) |