КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Флаги форматирования
0006 002.449 036 0005 002.236 025 0004 002.000 016 0003 001.732 009 0002 001.414 004 0001 0000001 001 Void main () { double x; cout.precision (4); cout.fill ('0'); cout << "x\tsqrt(x)\tх^2\n"; for (x = l.0; x<=6. 0; x++) { cout. width (4); cout << x << ’\t’; cout.width (6); cout << sqrt (x) << ’\t’; cout.width (3); cout << x*x << ' \n '; } } Эта программа выводит на экран небольшую таблицу значений переменной х, ее квадратного корня и квадрата: X sqrt(x) x^2 С каждым потоком связан набор флагов, которые управляют форматированием потока. Они представляют собой битовые маски, которые определены в классе ios как данные enum -типа fmt_flags. Сами флаги принадлежат типу fmtf lags, который определен следующим образом: typedef int fmtflags; Флаги форматирования имеют следующее назначение: boolalpha значения булевского типа вставляются и извлекаются в виде слов true и false hex значения целого типа преобразуются к основанию 16 (как шестнадцатеричные) dec значения целого типа преобразуются к основанию 10 oct значения целого типа преобразуются к основанию 8 (как восьмеричные) basefield = dec | oct | hex флаги dec, oct и hex взаимно исключают друг друга fixed числа с плавающей точкой выводятся в формате с фиксированной точкой scientific числа с плавающей точкой выводятся в научной записи (т.е., +n.хххЕ+уу) floatfield = scientific | fixed флаги scientific и fixed взаимно исключают друг друга showbase выводится основание системы счисления в виде префикса к целому числовому значению (например, число 10FE выводится как Ох10FЕ) showpoint при выводе значений с плавающей точкой выводится десятичная точка и последующие нули showpos при выводе положительных числовых значений выводится знак плюс uppercase заменяет определенные символы нижнего регистра на символы верхнего регистра (символ "е" при выводе чисел в научной нотации на "Е" и символ "х" при выводе 16ричных чисел на "X") left данные при выводе выравниваются по левому краю поля right данные при выводе выравниваются по правому краю поля internal добавляются символы-заполнители между всеми цифрами и знаками числа для заполнения поля вывода adjustfield = left | right | internal флаги left и right взаимно исключают друг друга skipws ведущие символы-заполнители (знаки пробела, табуляции и перевода на новую строку) отбрасываются unitbuf выходной буфер очищается после каждой операции вставки в поток Прочесть текущие установки флагов позволяет функция-член flags () класса ios. Для этого используется следующий прототип этой функции: fmtflags flags () const; Функция flags () имеет и вторую форму, которая может использоваться для установки значений флагов. Для этого используется следующий прототип этой функции: fmtflags flags (fmtflags fmtfl); В этом случае битовый шаблон копируется fmtfl в переменную, предназначенную для хранения флагов форматирования. Функция возвращает предыдущие значения флагов. Поскольку эта форма функции меняет весь набор флагов, она применяется редко. Вместо нее используется функция-член setf () класса ios, которая позволяет установить значение одного или нескольких флагов. Она имеет следующие прототипы: fmtflags setf (fmtflags mask); fmtflags setf (fmtflags fmtfl, fmtflags mask); Первая функция-член неявно вызывает функцию flags (mask | flags ()) для установки битов, указанных параметром mask, и возвращает предыдущие значения флагов. Второй вариант функции присваивает битам, указанным параметром mask, значения битов параметра fmtfl, а затем возвращает предыдущие значения флагов. Например, следующий вызов функции setf () устанавливает для потока cout флаги hex и uppercase: cout.setf (ios:: hex | ios:: uppercase); Сбросить установленные флаги можно с помощью функции-члена unsetf () класса ios, имеющей следующий прототип: void unsetf (fmtflags mask); Она сбрасывает флаги, заданные параметром mask. Следующий пример демонстрирует некоторые флаги: # include <iostream>
Дата добавления: 2014-01-04; Просмотров: 425; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |