Шаг 486.
Библиотека STL. Ввод-вывод с использованием потоковых классов. Стандартные функции ввода-вывода. Форматированный ввод-вывод логических данных

    На этом шаге мы рассмотрим задание формата при работе с логическими данными.

    Флаг boolalpha определяет формат ввода и вывода логических значений - числовой или текстовый (таблица 1).

Таблица 1. Флаг представления логических значений
Флаг Описание
boolalpha При установленном флаге используется текстовое представление. При сброшенном флаге используется числовое представление

    Если флаг не установлен (значение по умолчанию), логические данные представляются в числовом виде. В этом случае false всегда представляется значением 0, a true - значением 1. При чтении логических данных в числовом представлении наличие символов, отличных от 0 и 1, считается ошибкой (для потока данных устанавливается бит failbit).

    При установке флага логические данные читаются и записываются в текстовом представлении. При чтении логического значения строка должна соответствовать текстовому представлению true или false. Строки, представляющие эти значения, определяются состоянием объекта локального контекста. Стандартный объект локального контекста "С" использует для представления логических значений строки "true" и "false".

    Для удобства работы с этим флагом определены специальные манипуляторы (таблица 2).

Таблица 2. Манипуляторы представления логических данных
Манипулятор Описание
boolalpha Включает текстовое представление (установка флага ios::boolalpha)
noboolalpha Включает числовое представление (сброс флага ios::boolalpha)

    Например, следующий фрагмент выводит переменную b сначала в числовом, а затем в текстовом представлении:

bool b;
.   .   .   .   .
cout << noboolalpha << b << " == " << boolalpha << b << endl;

    На следующем шаге мы рассмотрим способы задания ширины поля, заполнителя, выравнивания.




Предыдущий шаг Содержание Следующий шаг