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

6. Оператор printf - вывод целых чисел в восьмиричном и

шестнадцатиричном представлении

Функция printf поддерживает спецификаторы формата, обеспечивающие ее информацией о типах параметров (таких как int, char и т.д.). В зависимости от назначения программы, могут возникнуть случаи, когда требуется вывести целые числа в восьмиричном (по основанию 8) или шестнадцатиричном (основание 16) виде. Спецификатор формата %о в функции printf предписывает отображение соответствующего значения в восьмиричном виде. Спецификаторы %х и %Х предписывают вывод в шестнадцатиричном виде. Различие между %х и %Х состоит в том, что последний отображает значение прописными буквами (в верхнем регистре). Следующая программа ОСТ_НЕХ.С демонстрирует использование спецификаторов формата %о, %х и %Х:

#include <stdio.h>

void main()

{

int value = 255;

printf("Десятичное значение %d в 8-ричном виде равно %о\n ", value,value);

printf("Десятичное значение %d в 16-ричном виде равно %х\n ", value, value);

printf("Десятичное значение %d в 16-ричном виде равно %Х\n ", value, value);

}

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

Десятичное значение 255 в 8-ричном виде равно 377

Десятичное значение 255 в 16-ричном виде равно ff

Десятичное значение 255 в 16-ричном виде равно FF

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

Функция printf поддерживает спецификаторы формата, обеспечивающие ее информацией о типах параметров (таких как int, char и т.д.). Для отображения с помощью printf значений типа unsigned int следует использовать спецификатор формата %u. Если вместо %u используется %d, то printf будет интерпретировать заданное значение как значение типа int, что может привести к выводу неверного значения. В следующей программе U_INTOUT.C спецификаторы формата %u и %d используются для вывода на экран значения 42000. Программа иллюстрирует также типичную ошибку, которая может возникнуть при использовании неподходящего спецификатора формата:

#include <stdio.h>

void main()

{

unsigned int value = 42000;

printf("Вывод 42000 как unsigned %u\n ", value);

printf("Вывод 42000 как int %d\n ", value);

}

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

С:\>U_INTOUT <ENTER>

Вывод 42000 как unsigned 42000

Вывод 42000 как int -23536

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

Функция printf поддерживает спецификаторы формата, обеспечивающие ее информацией о типах параметров (таких как int, char и т.д.). Для отображения с помощью printf значений типа long int следует использовать спецификатор формата %ld. Если вместо %ld используется %d, printf будет интерпретировать значение как значение типа int, что может привести к выводу неверного результата. Следующая программа LONGOUT.C использует спецификаторы формата %ld и %d для вывода значения 1000000. Программа также иллюстрирует ошибку, которая может возникнуть при использовании неподходящего спецификатора формата:

#include <stdio.h>

void main()

{

long int one_million =1000000;

printf ("Один миллион равен %ld\n ", one_million);

printf ("Один миллион равен %d\n ", one_million);

}

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

Один миллион равен 1000000

Один миллион равен 16960

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

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

#include <stdio.h>

void main()

{

float price = 525.75;

float sales_tax =0.06;

printf("Стоимость продукта равна %f\n ", price);

printf("Налог с продажи продукта равен %f\n ", price * sales_tax);

}

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

Стоимость продукта равна 252.750000

Налог с продажи продукта равен 31.544999

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