Spec-Zone.ru › C++

std::basic_iostream

Определён в заголовочном файле <istream>
template< 
    class CharT, 
    class Traits = std::char_traits<CharT>
> class basic_iostream : 
      public basic_istream<CharT, Traits>,
      public basic_ostream<CharT, Traits>

Шаблон класса basic_iostream обеспечивает поддержку высокоуровневых операций ввода и вывода в потоках. Поддерживаемые операции включают последовательное чтение или запись и форматирование. Эта функциональность реализована поверх интерфейса, предоставляемого классом std::basic_streambuf. Доступ к ней осуществляется через класс std::basic_ios.

cpp/io/ios base cpp/io/basic ios cpp/io/basic istream cpp/io/basic ostream

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

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

Определён в заголовочном файле <istream>
Тип Определение
std::iostream std::basic_iostream<char>
std::wiostream std::basic_iostream<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=
(C++11)
перемещением присваивает другой объект basic_iostream
(защищённая функция-член)
swap
(C++11)
обменивается состоянием с другим объектом basic_iostream
(открытая функция-член)

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

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

Форматированный ввод
operator>>
извлекает форматированные данные
(открытая функция-член класса std::basic_istream<CharT,Traits>)
Неформатированный ввод
get
извлекает символы
(открытая функция-член класса std::basic_istream<CharT,Traits>)
peek
читает следующий символ, не извлекая его
(открытая функция-член класса std::basic_istream<CharT,Traits>)
unget
отменяет извлечение символа
(открытая функция-член класса std::basic_istream<CharT,Traits>)
putback
помещает символ во входной поток
(открытая функция-член класса std::basic_istream<CharT,Traits>)
getline
извлекает символы до обнаружения заданного символа
(открытая функция-член класса std::basic_istream<CharT,Traits>)
ignore
извлекает и отбрасывает символы до обнаружения заданного символа
(открытая функция-член класса std::basic_istream<CharT,Traits>)
read
извлекает блоки символов
(открытая функция-член класса std::basic_istream<CharT,Traits>)
readsome
извлекает уже доступные блоки символов
(открытая функция-член класса std::basic_istream<CharT,Traits>)
gcount
возвращает количество символов, извлечённых последней операцией неформатированного ввода
(открытая функция-член класса std::basic_istream<CharT,Traits>)
Позиционирование
tellg
возвращает индикатор позиции ввода
(открытая функция-член класса std::basic_istream<CharT,Traits>)
seekg
устанавливает индикатор позиции ввода
(открытая функция-член класса std::basic_istream<CharT,Traits>)
Разное
sync
синхронизируется с базовым устройством хранения данных
(открытая функция-член класса std::basic_istream<CharT,Traits>)

Классы-члены

sentry
реализует базовую логику подготовки потока к операциям ввода
(открытый класс-член класса std::basic_istream<CharT,Traits>)

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

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

Форматированный вывод
operator<<
вставляет форматированные данные
(открытая функция-член класса std::basic_ostream<CharT,Traits>)
Неформатированный вывод
put
вставляет символ
(открытая функция-член класса std::basic_ostream<CharT,Traits>)
write
вставляет блоки символов
(открытая функция-член класса std::basic_ostream<CharT,Traits>)
Позиционирование
tellp
возвращает индикатор позиции вывода
(открытая функция-член класса std::basic_ostream<CharT,Traits>)
seekp
устанавливает индикатор позиции вывода
(открытая функция-член класса std::basic_ostream<CharT,Traits>)
Разное
flush
синхронизируется с базовым устройством хранения данных
(открытая функция-член класса std::basic_ostream<CharT,Traits>)

Классы-члены

sentry
реализует базовую логику подготовки потока к операциям вывода
(открытый класс-член класса 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

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

Функции состояния
good
проверяет, не произошла ли ошибка, то есть доступны ли операции ввода-вывода
(открытая функция-член класса std::basic_ios<CharT,Traits>)
eof
проверяет, достигнут ли конец файла
(открытая функция-член класса std::basic_ios<CharT,Traits>)
fail
проверяет, произошла ли ошибка
(открытая функция-член класса std::basic_ios<CharT,Traits>)
bad
проверяет, произошла ли неисправимая ошибка
(открытая функция-член класса std::basic_ios<CharT,Traits>)
operator!
проверяет, произошла ли ошибка (синоним fail())
(открытая функция-член класса std::basic_ios<CharT,Traits>)
operator bool
проверяет, не произошла ли ошибка (синоним !fail())
(открытая функция-член класса std::basic_ios<CharT,Traits>)
rdstate
возвращает флаги состояния
(открытая функция-член класса std::basic_ios<CharT,Traits>)
setstate
устанавливает флаги состояния
(открытая функция-член класса std::basic_ios<CharT,Traits>)
clear
изменяет флаги состояния
(открытая функция-член класса std::basic_ios<CharT,Traits>)
Форматирование
copyfmt
копирует сведения о форматировании
(открытая функция-член класса std::basic_ios<CharT,Traits>)
fill
управляет символом заполнения
(открытая функция-член класса std::basic_ios<CharT,Traits>)
Разное
exceptions
управляет маской исключений
(открытая функция-член класса std::basic_ios<CharT,Traits>)
imbue
устанавливает локаль
(открытая функция-член класса std::basic_ios<CharT,Traits>)
rdbuf
управляет связанным буфером потока
(открытая функция-член класса std::basic_ios<CharT,Traits>)
tie
управляет связанным потоком
(открытая функция-член класса std::basic_ios<CharT,Traits>)
narrow
преобразует символы в узкие символы
(открытая функция-член класса std::basic_ios<CharT,Traits>)
widen
преобразует символы в широкие символы
(открытая функция-член класса std::basic_ios<CharT,Traits>)

Унаследовано от 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) открыть в эксклюзивном режиме

(псевдоним типа)
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
тип функции обратного вызова
(псевдоним типа)

Отчёты об ошибках стандарта

Следующие отчёты об ошибках, изменяющие поведение, были применены задним числом к ранее опубликованным стандартам C++.

Отчёт об ошибке Применено к Поведение согласно опубликованному стандарту Правильное поведение
LWG 271 C++98 типы-члены char_type, traits_type, int_type, pos_type и off_type не были определены
(std::basic_istream и std::basic_ostream определяли эти типы, что приводило к неоднозначности)
определить
эти типы

См. также

  • Манипуляторы ввода-вывода

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

Spec-Zone.ru

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