![]() Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
![]() Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
![]() |
Лекция 18. Форматирование данных при выводе
Форматирование данных при выводе
При выводе чисел каждое из них занимает ровно столько позиций, сколько необходимо для его представления. Напимер: int i=1, j=2, k=5; cout << “\n” << i << j << k; Результат: Для улучшения читаемости можно в операторе вывода включить пробелы: cout << “\n” << i << “ “ << j << “ “ << k; 1 2 5 Вещественные числа по умолчанию выводятся на экран с фиксированной точкой. Например: cout << “\n 1.0 / 3.0 = ” << 1.0/3.0; на экране появится: 1.0 / 3.0 = 0.333333 (6 знаков по умолчанию) Форматы представления выводимой информации могут быть изменены с помощью флагов форматирования. Флаги реализованы в виде отдельных битов целого числа типа long. Например: 0х0001 - при таком значении флага операция ввода >> будет игнорировать пробелы. 0х0002 – вывод с выравниванием по левому краю. 0х0004 – вывод с выравниванием по правому краю (по умолчанию). 0х0010 - десятичная система счисления. 0х0020 – восьмеричная система счисления. 0х0040 – шестнадцатеричная система счисления. 0х0100 – при выводе вещественных чисел обязательно печатать десятичную точку, даже если дробная часть равна 0. 0х0400 – печатать знак + при выводе положительных чисел. 0х0800 – использовать для вывода вещественных чисел формат с плавающей точкой. 0х1000 – использовать формат с фиксированной точкой при выводе вещественных чисел.
Количество цифр в дробной части определяется заданной по умолчанию точностью Флаги могут обрабатываться как по отдельности, так и группами (используют операцию ИЛИ ‘|’) Кроме флагов для управления форматом используются следующие функции:
char fill(); - возвращает текущий символ заполнения пустых позиций поля вывода; char fill(char); - заменяет символ заполнения; long flags(); - возвращает текущий набор битов флагов; long flags(long); - устанавливает биты флагов; long unsetf(long); - сбрасываются биты флагов; int precision(); - возвращает текущее значение точности при выводе вещественных.чисел; int precision(int); - устанавливает по значению n точность; int width(); - возвращает min ширину поля вывода; int width(int); - устанавливает ширину поля вывода.
Примеры.
{ int a, b; cin >> a >> b; cout.width (4); cout << a << “ “; cout.width (6); cout << b; } ._______________________ 12 345 <enter>
Результат
{ float a, b; cin >> a >> b; cout.precision (2); cout << a << “ “ << b; } ._______________________ 15.3456 12.34567 <enter> Результат: 15.35 12.35
{ float a=2.7689547; cout << “\n a= “ << a << “\n”; cout.flags(0x0800); cout << a; } Pезультат: а=2.768955 2.768955е+00 Если внести изменения в строку установки флагов: cout.flags(0x0800|0x0400); Результат: а = 2.768955 + а = 2.768955е+00
{ int h=10; cout << “\n h= “ << h << “\n”; cout.flags(0x0020); // восьмеричный код cout << h; } Результат: h=10
{ int h; cin >> h; cout << “\n h= “ << h << “\n”; cout.width(4); cout.fill(‘#’); cout << h; } .___________________________ 12 <enter> Результат: ##12 Следует отметить, что существует еще один способ изменения флагов с помощью манипуляторов. Манипулятор – это функция, вызов которой можно использовать в качестве правого операнда для операции ввода-вывода. Различают манипуляторы без параметров и с параметрами. Манипуляторы без параметров: dec – установка флага десятичной с.с. hex – шестнадцатеричной с.с oct – восьмеричной с.с. ws - извлечение из входного потока пробелов endl – при выводе включается символ новой строки.
Например: cout << 15 << hex << 15 << oct << 15 << dec << 15; Результат 150xF01715 Манипуляторы с параметрами определены в файле iomanip.h Примеры: setprecision(int n) - задает точность представления вещественных чисел; setw(int n) - задает min ширину поля вывода: setfill(int n) - задает код символа-заполнителя; resetiosflags(long l) - сбрасывает флаги. Пример.
# include <iostream>h> # include <iomanip.h> void main() { cout << setprecision(3) << 12.345678; cout << setw(4) << 12; }
Результат: 12.346 12
1.Задана главная функция:
void main() { int h=100; cout.width(8); cout.fill(‘*’); cout << h; }
На экран будет выведена строка 1.100***** 2.*****100
Date: 2015-12-12; view: 678; Нарушение авторских прав |