На этом шаге мы рассмотрим особенности ввода значений логического типа.
Кроме базовых типов стандартные операторы ввода-вывода также определены для типов bool, char* и void*. Кроме того, они могут расширяться для базовых типов.
По умолчанию логические величины вводятся и выводятся в численном представлении: false соответствует числу 0, a true соответствует 1. При чтении логических данных значения, отличные от 0 и 1, считаются ошибочными. В этом случае устанавливается бит ios::failbit, что может привести к выдаче соответствующего исключения.
Для потока данных также можно включить режим форматирования, в котором логические величины вводятся и выводятся в виде символьных строк. При этом приходится учитывать проблему интернационализации: без специального локального контекста используются строки "true" и "false". В других локальных контекстах могут применяться другие строки. Например, объект локального контекста немецкого языка ассоциирует логические значения со строками "wahr" и "falsch".
На следующем шаге мы рассмотрим работу с типами char и wchar_t.