Типы данных в языке C++__________________________________705

ios:: dec       десятичная система счисления, устанавливается манипулято-
ром dec

ios::oct        восьмеричная система счисления, устанавливается манипулято-
ром oct

ios::hex       шестнадцатеричная система счисления, устанавливается мани-
пулятором hex

ios::showbase  вывод основания системы счисления

ios::showpoint обязательная печать десятичной точки и нулевых младших
разрядов

ios:: uppercase вывод в верхнем регистре символов Х и Е в шестнадпатерич-
ном и экспоненциальном форматах

ios::showpos   вывод символа «+» перед положительным числом

ios:: scientific   экспоненциальное представление действительных чисел
ios::fived      формат действительных чисел с фиксированной точкой

Флаги состояния формата управляются методами flags, setf и unsetf, или ма-
нипуляторами потоков setw, setiosflags и resetiosflags.

Метод flags используется для задания сразу всех флагов. При этом те флаги,
которые должны быть установлены, объединяются операцией поразрядного ИЛИ
(|) в одно значение типа long, передаваемое методу как параметр. Метод flags воз-
вращает значение типа long, содержащее предыдущие значения опций. Это значе-
ние часто сохраняется с тем, чтобы можно было впоследствии вызвать функцию
flags с этим сохраненным значением и восстановить предыдущие значения опций.

Метод setf и параметризованный манипулятор потока setiosflags имеют един-
ственный аргумент, который устанавливает один или более флагов, соединенных
операцией |, и может использовать текущие установки флагов для создания нового
состояния формата. Например, манипулятор

setiosflags(ios::showpos | ios::showpoint)

устанавливает флаги ios::showpos и ios::showpoint.

Манипулятор потока resetiosflags и метод unsetf наоборот, сбрасывают флаги,
которые указаны их параметром. Чтобы использовать перечисленные параметри-
зованные манипуляторы потока, надо в приложение включить директиву inclu-
de <iomanip.h>.

Приведем примеры использования перечисленных флагов состояния формата.

Оператор, использующий флаг showpoint:

outfile « 1. « " " « 1.1 « " " «

setiosflags(ios::showpoint) « 1. « " " « 1.1 « endl;

дает результат:

1 1.1 1.00000 1.10000
Оператор, использующий флаги right, left и internal:

outfile « setw(6) « -1.1 « endl

« setw(6) « resetiosflags(ios::right)

« setiosflags(ios::left) « -1.1 « endl

« setw(6) « resetiosflags(ios::left)

« setiosflags(ios::internal) « -1.1 « endl;

23 Зак.764