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