Управление потоками ввода/вывода в С++

Содержание

Флаги

С помощью механизма флагов можно управлять параметрами вывода данных на консоль. Устанавливается значение флага через метод 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() установить символ заполнитель пустых элементов поля
   

Автор: Anton Shtanyuk

Created: 2019-07-25 Thu 20:38

Emacs 26.1 (Org mode 9.1.14)

Validate