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

16. Оператор printf - форматирование вывода целого значения

Как было изложено выше, спецификатор формата %d, поддерживаемый функцией printf, задает вывод целого значения. По мере усложнения программы могут потребоваться дополнительные средства форматирования данных. Например, пусть необходимо напечатать таблицу, аналогичную следующей:

Продавец Количество

Jones 332

Smith 1200

Alien 3311

David 43

При работе со спецификатором формата %d можно указать минимальное число символов, используемых для вывода целого значения. В следующей программе INT_FMT.C показывается, как можно форматировать вывод целого числа, используя %d:

# include <stdio.h>

void main()

{int value = 5;

printf ("%1d\n", value);

printf ("%2d\n",value);

printf ("%3d\n",value);

printf ("%4d\n",value);

}

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

C:\> INT_FMT <ENTER>

5

5

5

5

Как можно заметить, цифра, указываемая после знака %, определяет минимальное число символов, которое будет использоваться функцией prinlf для отображения целого значения. Если, например, мы зададим %5d, а значение, которое требуется вывести, равно 10, то выведенное значение будет содержать три предшествующих пробела. Следует обратить внимание на то, что значение, указываемое в спецификаторе, определяет минимальное число символов, которое будет требоваться для вывода. Если значение, которое мы желаем отобразить, требует символов больше, чем указано в спецификаторе формата, то при выводе будет использовано столько символов, сколько требуется выводимому значению.

17. Оператор printf - вывод целых значений с ведущими нулями

Вышебыло показано, как форматировать вывод целого значения путем задания количества требуемых цифр в спецификаторе формата %d непосредственно после знака %. Если выводимое функцией printf целое значение содержит меньше цифр, чем заданное число символов, то вывод printf будет дополняться слева необходимым числом пробелов. В зависимости от потребностей программы, может возникнуть необходимость дополнения выводимого значения слева не символами пробела, а нулями (называемыми ведущие нули). Для соответствующего указания следует задать 0 в спецификаторе формата непосредственно после символа % и перед значением требуемого числа цифр. В следующей программе ZERO_PAD.C иллюстрируется заполнение поля значения ведущими нулями:

#include <stdio.h>

void main()

{

int value = 5;

printf ("%01d\n", value);

printf ("%02d\n", value);

printf ("%03d\n", value);

printf ("%04d\n", value);

}

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

5

05

005

0005

18. Оператор printf - вывод префикса перед восьмиричными и

шестнадцатиричными целыми числами

Использование спецификаторов формата %о для отображения восьмиричных значений и %х и %Х для отображения шестнадцатиричных значений уже обсуждалось в С55. Когда в программе осуществляется вывод восьмиричных и/или шестнадцатиричных значений, удобно использовать префикс для указания основания выводимого значения: 0 для восьмиричных значений (например 0777) и Ох для шестнадцатиричных (OxFF). Для включения префикса в изображение восьмиричого или шестнадцатиричного значения в спецификаторе формата требуется задать знак номера (#) непосредственно после %. Следующая программа SHOW_OH.C демонстрирует использование знака # в спецификаторе формата функции printf:

#include <stdio.h>

void main ()

{

int value = 255;

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

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

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

}

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

С:\>SHOW_OH <ENTER>

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

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

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