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 ostreamstd-basic iostream-inheritance.svg

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

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

Определено в заголовке <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
[статическая]
возвращает уникальный целое число, используемое в качестве индекса к 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) Открытие в режиме исключительного доступа

(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
Указывает тип события
(перечисление)
event_callback
Тип обратного вызова функции
(typedef)

Отчёты об ошибках

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

DR Применён к Поведение, как опубликовано Корректное поведение
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/w/cpp/io/basic_iostream

Spec-Zone.ru

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