Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

Zyava



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Флаги и функции форматирования
Работа всех потоковых объектов из библиотеки IOSTREAM.H контролируется флагами
форматирования, определяющими такие параметры, как, например, основание системы
счисления при выводе целых чисел и точность представления чисел с плавающей запятой.
Флаги можно устанавливать с помощью функции setf(), а сбрасывать — с помощью функции
unsetf (). Есть два варианта функции setf() с одним аргументом типа long и с двумя. Первым
аргументом является набор флагов, объединенных с помощью операции побитового ИЛИ (|).
Возможные флаги перечислены в таблице
  Флаг   Назначение    
skipws  при вводе пробельные литеры пропускаются    
left  выводимые данные выравниваются по левому краю с дополнением символами-заполнителями по   ширине поля    
right  выводимые данные выравниваются по правому краю с дополнением символами-заполнителями по   ширине поля (установлен по умолчанию)    
internal  при выравнивании символы-заполнители вставляются между символом знака или префиксом основания   системы счисления и числом    
dec  целые числа выводятся по основанию 10 (установлен по умолчанию); устанавливается также   манипулятором dec    
oct  целые числа выводятся по основанию 8; устанавливается также манипулятором oct    
hex  целые числа выводятся по основанию 16; устанавливается также манипулятором hex    
showbase при выводе целых чисел отображается префикс, указывающий на основание системы счисления    
showpoint  при выводе чисел с плавающей запятой всегда отображается десятичная точка, а хвостовые нули не   отбрасываются    
uppercase  шестнадцатеричные цифры от А до F, а также символ экспоненты Е отображаются в верхнем регистре    
showpos при выводе положительных чисел отображается знак плюс    
scientific  числа с плавающей запятой отображаются в научном формате (с экспонентой)    
fixed  числа с плавающей запятой отображаются в фиксированном формате (без экспоненты)    
unitbuf  при каждой операции вывода буфер потока должен очищаться    
stdio  при каждой операции вывода буферы потоков stdout и stderr должны очищаться  

 
Вторым аргументом является специальная битовая маска, определяющая, какую группу
флагов можно модифицировать. Имеются три стандартные маски:
adjustfield = internal | left | right
basefield = dec | oct | hex
floatfield = fixed | scientific
Оба варианта функции setf() возвращают значение типа long, содержащее предыдущие
установки всех флагов.
Все перечисленные флаги, а также константы битовых масок и упоминавшиеся манипуляторы
dec, hexи octявляются членами класса ios - базового в иерархии всех классов ввода-вывода. В
этот класс входят, помимо прочего, функции fill() , precision ( ) и width ( ) , тоже связанные с
форматированием выводимых данных!
Функция fill( ) устанавливает переданный ей символ в качестве символа-заполнителя.
Аналогичные действия выполняет манипулятор setfill () . Вызванная без аргументов, функция
возвращает текущий символ-заполнитель. По умолчанию таковым служит пробел.
204
Когда установлен флаг scientificили fixed, функция precision() задает точность представления
чисел с плавающей запятой, в противном случае определяет общее количество значащих
цифр. Аналогичные действия выполняет манипулятор setprecision() . По умолчанию точность
равна 6. Вызванная без аргументов, функция возвращает текущее значение точности.
Функция width() определяет минимальную ширину поля вывода в символах. Если при выводе
количество символов оказывается меньшим ширины поля, оно дополняется специальными
символами-заполнителями. После каждой операции записи значение ширины поля
сбрасывается в 0. Аналогичные действия выполняет манипулятор setw( ) . Вызванная без
аргументов, функция возвращает текущую ширину поля.
Манипуляторы setfill () , setprecision() и setw(), также являющиеся членами класса ios,
относятся к категории параметризованных, и для работы с ними необходимо дополнительно
подключить к программе файл IOMANIP.H.

Всего записей: 324 | Зарегистр. 04-05-2006 | Отправлено: 17:10 01-03-2007 | Исправлено: Zyava, 17:21 01-03-2007
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на C/С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru