Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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); - устанавливает ширину поля вывода.

 

Примеры.

 

  1. void main()

{ int a, b;

cin >> a >> b;

cout.width (4);

cout << a << “ “;

cout.width (6);

cout << b;

}

._______________________

12 345 <enter>

 

Результат

 

  1. void main()

{ float a, b;

cin >> a >> b;

cout.precision (2);

cout << a << “ “ << b;

}

._______________________

15.3456 12.34567 <enter>

Результат:

15.35 12.35

 

  1. void main()

{ 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

  1. void main()

{ int h=10;

cout << “\n h= “ << h << “\n”;

cout.flags(0x0020); // восьмеричный код

cout << h;

}

Результат:

h=10

  1. void main()

{ 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: 617; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию