Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lect11.pdf
Скачиваний:
6
Добавлен:
06.02.2016
Размер:
378.65 Кб
Скачать

Особенности форматирования

Основнаяособенность:методы форматированиявлияюттолькона ближайшуюоперациюспотоком. Послееёвыполненияформатирование сбрасываетсянаформатированиепо умолчанию.

Форматпоумолчанию соответствует%g

Частичноисправленныйпример

cout.width(7);

cout.precision(3); cout << 1.5; cout.width(7); cout.precision(3); cout << 2.5 << "\n";

Результат:

1.5 2.5

Гденезначащие нули?

Поумолчаниювыводнезначащих нулейотключен.Чтобыони отображались,требуетсявключить fixedрежимдлявыводавещественных значений.

Включениеfixed режимавозможно толькоспомощьюфлаговили манипуляторов.

Основныефлаги потоковвводавывода

ios::skipws

пропускпредшествующих пробелов привводе

ios::left

выводс левым выравниванием

ios::right

выводс правым выравниванием

ios::internal

знакчисла выводится слевого края,число – с правого

Основныефлаги потоковвводавывода

ios::dec

десятичноепреобразование

ios::oct

восьмеричноепреобразование

ios::hex

шестнадцатиричноепреобразование

ios::showbase

показатьуказательсистемысчисления

Основныефлаги потоковвводавывода

ios::showpoint

показатьпозициюдесятичной точки(навыходе)

ios::uppercase

выводшестнадцатиричных значений буквами верхнегорегистра

ios::showpos

показатьзнак"+"для положительных чисел

ios::scientific

использовать запись чисел с выводом экспоненты Е

Основныефлаги потоковвводавывода

ios::fixed

использоватьзаписьчиселс фиксированнойпозициейдесятичной точки

ios::unitbuf

сбросвсехпотоков послевставки

ios::stdio

сбросstdout иstderr послевставки

Работасфлагами

//Устанавливает флаги,

//биты которых заданы в параметре; long ios::setf(long);

//снимает флаги

long ios::unsetf(long);

//Читает все флаги long ios::flags()

// Устанавливает все флаги long ios::flags(long);

Установитьсразунесколько флаговможноиспользуя поразрядныеоперации.

Установка флагов влияет на ВСЕ последующие операции!

Примериспользования флагов

int x=1678;

float f=2.3456e6;

//Сохранить значения флагов long savedFlags=cout.flags();

//Установить основание 16 с индикацией cout.setf(ios::hex | ios::showbase); cout << "Значение x=" << x << '\n';

//Выводить знак + для положительных значений cout.setf(ios::showpos);

cout << "Значение f=" << f << '\n';

//Восстановить значения флагов cout.flags(savedFlags);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]