На этом шаге мы рассмотрим еще несколько параметров форматирования.
Список форматных флагов завершается флагами skipws и unitbuf (таблица 1).
Таблица 1. Оставшиеся форматные флаги
Флаг | Описание |
---|---|
skipws | Автоматическое игнорирование начальных пропусков при чтении данных оператором >> |
unitbuf | Принудительный вывод содержимого буфера после каждой операции записи |
Флаг ios::skipws устанавливается по умолчанию; это означает, что по умолчанию некоторые операции чтения игнорируют начальные пропуски.
Обычно этот флаг удобнее держать установленным. Например, вам не придется специально заботиться о чтении пробелов, разделяющих числа.
С другой стороны, это означает, что вы не сможете читать пробелы оператором >>, потому что начальные пропуски всегда игнорируются.
Флаг ios::unitbuf управляет буферизацией вывода. При установленном флаге ios::unitbuf вывод практически выполняется без
буферизации - выходной буфер очищается после каждой операции записи. По умолчанию этот флаг не устанавливается. Исключение составляют
потоки данных сеrr и wcerr, для которых этот флаг устанавливается в исходном состоянии.
В таблице 2 представлены манипуляторы, используемые для управления дополнительными флагами.
Таблица 2. Манипуляторы для управления дополнительными форматными флагами
Манипулятор | Описание |
---|---|
skipws | Автоматическое игнорирование-начальных пропусков при чтении данных оператором >> (установка флага ios::skipws) |
noskipws | Обработка начальных пропусков при чтении данных оператором >> (сброс флага ios::skipws) |
unitbuf | Принудительный вывод содержимого буфера после каждой операции записи (установка флага ios::unitbuf) |
nounitbuf | Отмена принудительного вывода содержимого буфера после каждой операции записи (сброс флага ios::unitbuf) |
На следующем шаге мы рассмотрим интернационализацию.