314 Часть II. Программирование на C++

h03141.jpg

Флаг Назначение

internal Знаки выводить с пробелом

dec При выводе чисел использовать основание системы счисления 10 oct При выводе чисел использовать основание системы счисления 8 hex При выводе чисел использовать основание системы счисления 16 showbase Показывать при выводе основание системы счисления showpoint Для вещественных чисел показывать десятичную точку

uppercase В шестнадцатеричных числах выводить А, В, С, D, Е и F в верхнем регистре

showpos Положительные числа выводить со знаком +

scientific Использовать экспоненциальную (научную) нотацию вещественных чисел •

fixed Использовать фиксированную десятичную точку для вещественных чисел

При помощи логических операций можно подставить в функцию setf сразу несколько флагов (например, setf ( ios::hex ¦ ios: : uppercase)).

В первом примере (листинг 13.3) манипуляторами потока устанавливаются флаги, модифицирующие основание системы счисления.

// FORMAT.СРР — Форматирование ostream с помощью cout. ttinclude <iostream.h> void main() (

cout « hex « 15 « endl; /It

cout « oct « 15 « endl; // 17

cout « dec « 15 « endl; // 15

Эта программа выводит число 15 как шестнадцатеричное (по основанию 16), восьмеричное (основание 8) и десятичное. В следующем разделе вы узнаете, как создавать свои собственные манипуляторы потока. Остальные флаги из табл. 13.1 устанавливаются функцией setf.

Далее в примере демонстрируется, как с помощью комбинации флагов можно придать выводимому числу желаемый вид:

cout.setf( ios::showcase Iios::hex¦ios::uppercase);

cout « 15 « endl;