boolalpha | Отображать значения true и false как строки |
*noboolalpha | Отображать значения true и false как 0 и 1 |
showbase | Создавать префикс, означающий базу целочисленных значений |
*noshowbase | Не создавать префикс базы чисел |
showpoint | Всегда отображать десятичную точку для значений с плавающей запятой |
*noshowpoint | Отображать десятичную точку, только если у значения есть дробная часть |
showpos | Отображать + для положительных чисел |
*noshowpos | Не отображать + в неотрицательных числах |
uppercase | Выводить 0X в шестнадцатеричной и E в экспоненциальной формах записи |
*nouppercase | Выводить 0x в шестнадцатеричной и е в экспоненциальной формах записи |
*dec | Отображать целочисленные значения с десятичной базой числа |
hex | Отображать целочисленные значения с шестнадцатеричной базой числа |
oct | Отображать целочисленные значения с восьмеричной базой числа |
left | Добавлять дополняющие символы справа от значения |
right | Добавлять дополняющие символы слева от значения |
internal | Добавлять дополняющие символы между знаком и значением |
fixed | Отображать значения с плавающей точкой в десятичном представлении |
scientific | Отображать значения с плавающей точкой в экспоненциальном представлении |
hexfloat | Отображать значения с плавающей точкой в шестнадцатеричном представлении (нововведение С++11) |
defaultfloat | Вернуть формат числа с плавающей точкой в десятичный (нововведение С++11) |
unitbuf | Сбрасывать буфер после каждой операции вывода |
*nounitbuf | Восстановить обычный сброс буфера |
*skipws | Пропускать отступы в операторах ввода |
noskipws | Не пропускать отступы в операторах ввода |
flush | Сбросить буфер объекта ostream |
ends | Вставить нулевой символ, а затем сбросить буфер объекта ostream |
endl | Вставить новую строку, а затем сбросить буфер объекта ostream |
*Означает стандартное состояние потока
Таблица 17.18. Манипуляторы, определенные в объекте iomanip
setfill(ch) | Заполнить отступ символом ch |
setprecision(n) | Установить точность n числа с плавающей точкой |
setw(w) | Читать или писать значение в w символов |
setbase(b) | Вывод целых чисел с базой b |
Ранее в программах уже использовался манипулятор endl
, который "записывался" в поток вывода как будто это значение. Но манипулятор endl
— не обычное значение; он выполняет операцию: выводит символ новой строки и сбрасывает буфер.
Манипуляторы используются для двух общих категорий управления выводом: контроль представления числовых значений, а также контроль количества и расположения заполнителей. Большинство манипуляторов, изменяющих флаг формата, предоставлены парами для установки и сброса; один манипулятор устанавливает флаг формата в новое значение, а другой сбрасывает его, восстанавливая стандартное значение.
Тот факт, что манипулятор вносит постоянное изменение во флаг формата, может оказаться полезным, когда имеется ряд операций ввода-вывода, использующих одинаковое форматирование. Действительно, некоторые программы используют эту особенность манипуляторов для изменения поведения одного или нескольких правил форматирования ввода или вывода. В таких случаях факт изменения потока является желательным.