
- •1. Введение.
- •2. Общие положения.
- •3. Форматирование ввода-вывода средствами языка с
- •4. Функция printf()
- •6. Оператор printf - вывод целых чисел в восьмиричном и
- •10. Оператор printf - вывод значений типа char
- •11. Оператор printf - вывод чисел с плавающей точкой в
- •12. Оператор printf - вывод чисел с плавающей точкой в
- •13. Оператор printf - вывод текстовых строк
- •15. Оператор printf - вывод значений со знаком
- •16. Оператор printf - форматирование вывода целого значения
- •18. Оператор printf - вывод префикса перед восьмиричными и
- •19 . Оператор printf - форматирование чисел с плавающей точкой
- •20. Оператор printf - форматирование экспоненциального представления
- •21. Оператор printf - вывод с выравниванием слева
- •22. Оператор printf - комбинирование спецификаторов формата
- •23. Оператор printf - перенос символьной строки
- •24. Оператор printf - вывод текстовых строк по near- и far-указателям
- •25. Оператор printf - работа с Esc-символами
- •26. Оператор printf - определение количества выводимых символов
- •27. Оператор printf - использование возвращаемого значения
- •28. Ansi-драйвер
- •29. Использование ansi-драйвера для очистки экрана
- •30. Использование ansi-драйвера для управления цветом на экране
- •31. Использование ansi-драйвера для позиционирования курсора
- •33.Ввод и вывод одного символа
- •35.Буферы
- •36. Чтение одной строки
- •37. Функции ввода-вывода символов
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