std::basic_fstream
Определено в заголовке <fstream> | ||
|---|---|---|
template<
class CharT,
class Traits = std::char_traits<CharT>
> class basic_fstream : public std::basic_iostream<CharT, Traits>
|
Шаблон класса basic_fstream реализует операции ввода/вывода высокого уровня для потоков, связанных с файлами. Он связывает буферизованный поток файлов (std::basic_filebuf) с интерфейсом высокого уровня (std::basic_iostream).
Типичная реализация std::basic_fstream содержит только один член данных без наследования: экземпляр std::basic_filebuf<CharT, Traits>.
Схема наследования
Предоставляются несколько псевдонимов типов для общих типов символов:
Определено в заголовке <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 |
Члены-функции
| создаёт поток файлов (публичная функция-член) |
|
| (деструктор)
[virtual] (явным образом объявленная) | удаляет поток файлов и связанный буфер, закрывает файл (виртуальная публичная функция-член) |
|
(C++11) | перемещает поток файлов (публичная функция-член) |
|
(C++11) | меняет местами два потока файлов (публичная функция-член) |
| возвращает объект базового устройства файла (публичная функция-член) |
|
|
(C++26) | возвращает определяемый реализацией дескриптор (публичная функция-член) |
Операции с файлами |
|
| проверяет, ассоциирован ли поток с файлом (публичная функция-член) |
|
| открывает файл и связывает его с потоком (публичная функция-член) |
|
| закрывает связанный файл (публичная функция-член) |
|
Функции вне класса
|
(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) |
|||||||||||||||||||||||||||||||||||||||
| определяет тип события (перечисление) |
|||||||||||||||||||||||||||||||||||||||
| тип обратной функции (typedef) |
|||||||||||||||||||||||||||||||||||||||
Примечания
| Макрокоманда проверки наличия функции | Значение | Std | Функция |
|---|---|---|---|
__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
{
// write
double d{3.14};
s.write(reinterpret_cast<char*>(&d), sizeof d); // binary output
s << 123 << "abc"; // text output
// for fstream, this moves the file position pointer (both put and get)
s.seekp(0);
// read
d = 2.71828;
s.read(reinterpret_cast<char*>(&d), sizeof d); // binary input
int n;
std::string str;
if (s >> n >> str) // text input
std::cout << "read back from file: " << d << ' ' << n << ' ' << str << '\n';
}
}Вывод:
read back from file: 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_fstream