Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Число цифр (точность) вещественных чисел




Заполняющий символ

Ширина поля

Форматирующие функции-элементы

Форматирование данных

Лекция 25

 

Библиотека потоков С + + предусматривает три способа управления форматом выходных данных: вызов форматирующих функций – элементов, использование флагов и применение манипуляторов.

 

 

Функции для форматирования, имеющиеся в классе ios, перегружены, чтобы обеспечить возможность как чтения, так и установки управляющего атрибута. Часто для атрибутов, которыми можно управлять с помощью функций, библиотека потоков С + + предусматривает также МАНИПУЛЯТОРЫ. Ниже описываются атрибуты, для управления которыми в классе ios имеются функции-элементы.

 

Для чтения и управления ширины поля потока в классе ios имеется функция width. Она перегружена: int ios:. w idth () возвращает текущее значение внутренней переменной ширины поля потока;

int ios:: width (int) устанавливает значение переменной ширины поля.

Дополнительная информация:

· При вводе width может быть использована для задания максимального числа читаемых символов.

· Применяемая при выводе width задает минимальную ширину поля.

· Если ширина поля меньше заданной, вывод дополняется символами fill. (Например, пробелами).

· Если выходное поле больше указанного, значение width игнорируется.

· По умолчанию значение width равно нулю (выход не дополняется и не обрезается).

· width обнуляется после каждого помещения данных в поток.

Примеры:

cin. width (MAX_LEN);

cout. width (4);

 

 

Для чтения или изменения текущего заполняющего символа можно применить функцию ios::fill(). Эта функция тоже перегружена.

char ios:: fill (char) – устанавливает внутренний заполняющий символ потока и возвращает его предыдущее значение.

По умолчанию заполняющим символом является пробел.

Пример: cout. fill (‘ * ’);

 

 

Функция ios:: precision () применяется при выводе чисел с плавающей точкой, позволяя читать или устанавливать текущее число значащих цифр.

int ios:: precision ()- возвращает текущее значение точности.

int ios:: precision (int) – устанавливает внутреннюю переменную точности вещественных чисел потока и возвращает прежнее значение.

Дополнительная информация:

· По умолчанию точность равна 6 цифрам.

· Если установлен флаг scientific или fixed, то precision задает число цифр, выводимых после десятичной точки.

Если не установлен ни один из этих флагов, то precision задаёт общее число значащих цифр.

Примеры:

cout. precision (4); //Всего 4 цифры.

cout. setf (ios:: fixed, ios:: floatfield); //Установили флаг fixed.

cout. precision (4); //4 цифры // после десятичной точки.

 




Поделиться с друзьями:


Дата добавления: 2015-06-27; Просмотров: 283; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.