Управление потоками ввода/вывода в С++
Содержание
Флаги
С помощью механизма флагов можно управлять параметрами вывода данных на консоль. Устанавливается значение флага через метод setf
, а снимается с помощью unsetf
.
Пример. Выравнивание по правой границе поля заданной ширины
int a=10; cout.setf(ios::right); cout.width(20); cout<<a<<endl;
Пример. Вывод логических величин в текстовом виде
bool a=true; cout<<a<<endl; cout.setf(ios::boolalpha); cout<<a<<endl;
Основные флаги, используемые при форматировании приведены в следующей таблице:
Флаг | Значение |
---|---|
left | левое выравнивание |
right | правое выравнивание |
boolalpha | вывод логических значений в текстовом виде |
dec | основание системы счисления 10 |
oct | основание системы счисления 8 |
hex | основание системы счисления 16 |
showbase | выводить индикатор системы счисления |
showpos | показывать + для положительных чисел |
scientific | экспонециальная форма вещественного числа |
fixed | фиксированная форма вещественного числа |
Манипуляторы
Помимо флагов, изменяющих состояние потока можно использовать манипуляторы. Идея манипуляторов состоит в том, что их можно помещать в поток вместе с данными. Многие манипуляторы повторяют названиями флаги.
Для работы с манипуляторами нужно подключить заголовочный файл iomanip.
Манипулятор | Значение |
---|---|
setw() | установить ширину поля |
setprecision() | количество цифр в дробной части |
left | выравнивание по левой границе |
right | выравнивание по правой границе |
boolalpha | вывод логических значений в текстовом виде |
nobool alpha | вывод логических значений в числовом виде |
dec | десятичная система счисления |
oct | восьмеричная система счисления |
hex | шестнадцатиричная система счисления |
showbase | показывать признак системы счисления |
noshowbase | не показывать признак системы счисления |
showpos | выводить + для положительных чисел |
noshowpos | не выводить + для положительных чисел |
sceintific | экспоненциальная форма для вещественных чисел |
fixed | фиксированная форма |
setfill() | установить символ заполнитель пустых элементов поля |