Spec-Zone.ru › C++

std::basic_ios

Определён в заголовочном файле <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

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

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

Определены в заголовочном файле <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

Открытые функции-члены

(конструктор)
создаёт объект
(открытая функция-член)
(деструктор)
[виртуальная]
уничтожает объект
(виртуальная открытая функция-член)
operator=
оператор копирующего присваивания удалён
(открытая функция-член)
Функции состояния
good
проверяет, не произошла ли ошибка, то есть доступны ли операции ввода-вывода
(открытая функция-член)
eof
проверяет, достигнут ли конец файла
(открытая функция-член)
fail
проверяет, произошла ли ошибка
(открытая функция-член)
bad
проверяет, произошла ли неустранимая ошибка
(открытая функция-член)
operator!
проверяет, произошла ли ошибка (синоним fail())
(открытая функция-член)
operator bool
проверяет, не произошла ли ошибка (синоним !fail())
(открытая функция-член)
rdstate
возвращает флаги состояния
(открытая функция-член)
setstate
устанавливает флаги состояния
(открытая функция-член)
clear
изменяет флаги состояния
(открытая функция-член)
Форматирование
copyfmt
копирует сведения о форматировании
(открытая функция-член)
fill
управляет символом заполнения
(открытая функция-член)
Прочее
exceptions
управляет маской исключений
(открытая функция-член)
imbue
задаёт локаль
(открытая функция-член)
rdbuf
управляет связанным буфером потока
(открытая функция-член)
tie
управляет связанным потоком
(открытая функция-член)
narrow
сужает символы
(открытая функция-член)
widen
расширяет символы
(открытая функция-член)

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

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

Унаследовано от std::ios_base

Функции-члены

Форматирование
flags
управляет флагами форматирования
(открытая функция-член std::ios_base)
setf
устанавливает заданный флаг форматирования
(открытая функция-член std::ios_base)
unsetf
сбрасывает заданный флаг форматирования
(открытая функция-член std::ios_base)
precision
управляет точностью десятичных вычислений с плавающей точкой
(открытая функция-член std::ios_base)
width
управляет шириной поля
(открытая функция-член std::ios_base)
Локали
imbue
задаёт локаль
(открытая функция-член std::ios_base)
getloc
возвращает текущую локаль
(открытая функция-член std::ios_base)
Внутренний расширяемый массив
xalloc
[статическая]
возвращает уникальное для всей программы целое число, которое можно безопасно использовать в качестве индекса для pword() и iword()
(открытая статическая функция-член std::ios_base)
iword
при необходимости увеличивает размер закрытого хранилища и предоставляет доступ к элементу типа long с заданным индексом
(открытая функция-член std::ios_base)
pword
при необходимости увеличивает размер закрытого хранилища и предоставляет доступ к элементу типа void* с заданным индексом
(открытая функция-член std::ios_base)
Прочее
register_callback
регистрирует функцию обратного вызова события
(открытая функция-член std::ios_base)
sync_with_stdio
[статическая]
задаёт, могут ли библиотеки ввода-вывода C++ и C взаимодействовать друг с другом
(открытая статическая функция-член std::ios_base)
Классы-члены
failure
исключение потока
(открытый класс-член std::ios_base)
Init
инициализирует стандартные объекты потоков
(открытый класс-член std::ios_base)

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

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

(псевдоним типа)
fmtflags
тип флагов форматирования

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

Константа Описание
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

(псевдоним типа)
iostate
тип состояния потока

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

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

(псевдоним типа)
seekdir
тип направления перемещения

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

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

(псевдоним типа)
event
задаёт тип события
(перечисление)
event_callback
тип функции обратного вызова
(псевдоним типа)

Примечания

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

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

Реальные реализации различаются:

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

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

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

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/basic_ios

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API