314 Часть II. Программирование на C++
Флаг Назначение
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;