Namespaces
Variants

std:: basic_ios

From cppreference.net
< cpp ‎ | io
Определено в заголовочном файле <ios>
template <

class CharT,
class Traits = std:: char_traits < CharT >
> class basic_ios

: public std:: ios_base

Класс std::basic_ios предоставляет средства для взаимодействия с объектами, имеющими std::basic_streambuf интерфейс. Несколько std::basic_ios объектов могут ссылаться на один фактический std::basic_streambuf объект.

cpp/io/ios base std-basic ios-inheritance.svg

Диаграмма наследования

Предоставлены несколько typedef для распространённых символьных типов:

Определено в заголовке <ios>
Тип Определение
std::ios std :: basic_ios < char >
std::wios std :: basic_ios < 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

Публичные функции-члены

конструирует объект
(public member function)
[virtual]
уничтожает объект
(virtual public member function)
operator=
оператор присваивания копированием удалён
(public member function)
Функции состояния
проверяет, что не произошло ошибок, т.е. операции ввода-вывода доступны
(public member function)
проверяет, достигнут ли конец файла
(public member function)
проверяет, произошла ли ошибка
(public member function)
проверяет, произошла ли неустранимая ошибка
(public member function)
проверяет, произошла ли ошибка (синоним fail() )
(public member function)
проверяет, что не произошло ошибок (синоним ! fail() )
(public member function)
возвращает флаги состояния
(public member function)
устанавливает флаги состояния
(public member function)
изменяет флаги состояния
(public member function)
Форматирование
копирует информацию о форматировании
(public member function)
управляет символом-заполнителем
(public member function)
Разное
управляет маской исключений
(public member function)
устанавливает локаль
(public member function)
управляет связанным буфером потока
(public member function)
управляет связанным потоком
(public member function)
сужает символы
(public member function)
расширяет символы
(public member function)

Защищённые функции-члены

инициализирует объект std::basic_ios , созданный конструктором по умолчанию
(защищённая функция-член)
(C++11)
перемещает из другого объекта std::basic_ios , за исключением rdbuf
(защищённая функция-член)
(C++11)
обменивается с другим объектом std::basic_ios , за исключением rdbuf
(защищённая функция-член)
заменяет rdbuf без очистки его состояния ошибки
(защищённая функция-член)

Унаследовано от 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 )
устанавливает, являются ли библиотеки ввода-вывода C++ и C взаимно совместимыми
(публичная статическая функция-член std::ios_base )
Классы-члены
исключение потока
(публичный класс-член std::ios_base )
инициализирует объекты стандартных потоков
(публичный класс-член std::ios_base )

Типы членов и константы

Тип Объяснение
тип режима открытия потока

Также определены следующие константы:

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

(typedef)
тип флагов форматирования

Также определены следующие константы:

Константа Объяснение
dec использование десятичной системы счисления для целочисленного ввода/вывода: см. std::dec
oct использование восьмеричной системы счисления для целочисленного ввода/вывода: см. std::oct
hex использование шестнадцатеричной системы счисления для целочисленного ввода/вывода: см. std::hex
basefield dec | oct | hex . Полезно для операций маскирования
left выравнивание по левому краю (добавляет символы заполнения справа): см. std::left
right выравнивание по правому краю (добавляет символы заполнения слева): см. std::right
internal внутреннее выравнивание (добавляет символы заполнения в указанную внутреннюю точку): см. std::internal
adjustfield left | right | internal . Полезно для операций маскирования
scientific генерация чисел с плавающей точкой в научной нотации, или шестнадцатеричной нотации при комбинации с fixed : см. std::scientific
fixed генерация чисел с плавающей точкой в фиксированной нотации, или шестнадцатеричной нотации при комбинации с scientific : см. std::fixed
floatfield scientific | fixed . Полезно для операций маскирования
boolalpha вставка и извлечение типа bool в буквенно-цифровом формате: см. std::boolalpha
showbase генерация префикса, указывающего систему счисления для целочисленного вывода, требование индикатора валюты в денежном вводе/выводе: см. std::showbase
showpoint безусловная генерация символа десятичной точки для вывода чисел с плавающей точкой: см. std::showpoint
showpos генерация символа + для неотрицательного числового вывода: см. std::showpos
skipws пропуск начальных пробельных символов перед определенными операциями ввода: см. std::skipws
unitbuf сброс вывода после каждой операции вывода: см. std::unitbuf
uppercase замена определенных строчных букв их эквивалентами в верхнем регистре в определенных операциях вывода: см. std::uppercase

(typedef)
тип состояния потока

Также определены следующие константы:

Константа Объяснение
goodbit нет ошибки
badbit неустранимая ошибка потока
failbit ошибка операции ввода/вывода (ошибка форматирования или извлечения)
eofbit связанная входная последовательность достигла конца файла

(typedef)
тип направления позиционирования

Также определены следующие константы:

Константа Объяснение
beg начало потока
end конец потока
cur текущая позиция индикатора позиции потока

(typedef)
определяет тип события
(enum)
тип функции обратного вызова
(typedef)

Примечания

Прямая реализация std::basic_ios хранит только следующие члены (которые все зависят от параметров шаблона и поэтому не могут быть частью std::ios_base ):

  • символ заполнения (см. fill() )
  • указатель на связанный поток (см. tie() )
  • указатель на связанный буфер потока (см. rdbuf() ).

Фактические реализации различаются:

Microsoft Visual Studio сохраняет только эти три члена.

LLVM libc++ хранит на 1 член меньше: он поддерживает указатель rdbuf как член void * в ios_base .

GNU libstdc++ хранит 4 дополнительных члена: три кэшированных фацета и флаг, указывающий, что fill был инициализирован.