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 basestd-basic ios-inheritance.svg

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

Предоставляются несколько определений типов для общих типов символов:

Определено в заголовке <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
[static]
возвращает уникальный целое число, используемое в качестве индекса для pword() и iword()
(публичная статическая член-функция std::ios_base)
iword
при необходимости изменяет размер частного хранилища и получает доступ к элементу типа long по указанному индексу
(публичный член-функция std::ios_base)
pword
при необходимости изменяет размер частного хранилища и получает доступ к элементу типа void* по указанному индексу
(публичный член-функция std::ios_base)
Разное
register_callback
регистрирует функцию обратного вызова события
(публичный член-функция std::ios_base)
sync_with_stdio
[static]
устанавливает, будут ли C++ и C библиотеки ввода-вывода взаимодействовать
(публичная статическая член-функция std::ios_base)
Вложенные классы
failure
исключение потока
(публичный вложенный класс std::ios_base)
Init
инициализирует стандартные объекты потоков
(публичный вложенный класс std::ios_base)

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

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

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

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

(typedef)
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

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

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

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

(typedef)
seekdir
тип направления поиска

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

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

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

Примечания

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

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

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

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

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

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

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

Spec-Zone.ru

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