Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс ПЯВУ 2 сем / Лекции 2 сем / Л№33 ФорматировВвод / Лекция № 31. Форматированный Ввод вывод .odt
Скачиваний:
16
Добавлен:
17.04.2015
Размер:
50.53 Кб
Скачать

10. Оператор printf - вывод значений типа char

Функция printf поддерживает спецификаторы формата, обеспечивающие ее информацией о типах параметров (таких как int, char и т.д.). Для отображения с помощью printf значении типа char следует использовать спецификатор формата %с. Следующая программа CHAR_OUT.C использует спецификатор формата %с для вывода на экран буквы А:

#include <stdio.h>

void main()

{

printf("Буква %c\n ", 'A');

printf("Буква %c\n ", 65);

}

Как можно видеть, программа дважды выводит букву А, которая задается по-разному в каждом вызове функции printf - первый раз с помощью символьной константы, второй раз путем указания ASCII-кода (65). После компиляции и выполнения программы на экран будет выведено:

Буква А

Буква А

11. Оператор printf - вывод чисел с плавающей точкой в

экспоненциальном формате

Функция printf поддерживает спецификаторы формата, обеспечивающие ее информацией о типах параметров (таких как int, char и т.д.). Как известно из С58, спецификатор формата %f предназначен для вывода значений с плавающей точкой. В некоторых случаях в программе может потребоваться вывод значений с плавающей точкой в экспоненциальной форме. Для выполнения такого вывода используются спецификаторы формата %е и %Е. Различие между %е и %Е заключается в том, что спецификатор формата %Е вызывает использование при выводе прописной буквы Е (для обозначения порядка), в то время как для спецификатора %е используется строчная. Следующая программа EXP_OUT.C демонстрирует применение спецификаторов формата %е и %Е для вывода значений с плавающей точкой в экспоненциальной форме:

#include <stdio.h>

void main()

{

float pi = 3.14159;

float radius = 2.0031;

printf("Площадь окружности равна %e\n ",2 * pi * radius);

printf("Площадь окружности равна %E\n ", 2 * pi * radius);

}

После компиляции и выполнения программы на экран будет выведено:

Площадь окружности равна 1.258584е01

Площадь окружности равна 1.258584Е01

Как можно заметить, по умолчанию спецификаторы формата %е и %Е обеспечивают форматирование вывода в минимальном объеме. Описание дополнительных возможностей по форматированию вывода с помощью функции printf приводится в последующих советах.

12. Оператор printf - вывод чисел с плавающей точкой в

десятичном или экспоненциальном формате

Согласно изложенному в С58, с помощью спецификатора формата %f функции printf можно отображать вещественные значения в формате с десятичный точкой. Известно также (С58), что применение спецификаторов формата %е и %Е обеспечивает вывод значений с плавающей точкой в экспоненциальной форме. Еще одна возможность, обеспечиваемая функцией printf,-форматные спецификаторы %g и %G, позволяющие представлять выводимые значения как в формате с десятичной точкой, так и в экспоненциальной форме. При применении этих спецификаторов функция prinlf сама решает, какая из форм (%f или %е) вывода наиболее информативна и должна быть использована. Следующая программа FLT_PT.C демонстрирует использование спецификатора формата %g:

#include <stdio.h>

void main()

{

printf("Отображение 0.1234 дает %g\n ",0.1234);

printf("Отображение 0.00001234 дает %g\n ",0.00001234);

}

После компиляции и выполнения программы на экран будет выведено:

Отображение 0.1234 дает 0.1234

Отображение 0.00001234 дает 1.234е-5