Функция
Упражнение 7.1. Напишите программу, осуществляющую перевод ввода с верхнего регистра на нижний или с нижнего на верхний в зависимости от имени, по которому она вызывается и текст которого находится в
7.2 Форматный вывод (printf)
Функция printf переводит внутренние значения в текст.
int printf(char *format, arg1, arg2, …)
В предыдущих главах мы использовали
Функция
Форматная строка содержит два вида объектов: обычные символы, которые напрямую копируются в выходной поток, и спецификации преобразования, каждая из которых вызывает преобразование и печать очередного аргумента
• Знак минус, предписывающий выравнивать преобразованный аргумент по левому краю поля.
• Число, специфицирующее минимальную ширину поля. Преобразованный аргумент будет занимать поле по крайней мере указанной ширины. При необходимости лишние позиции слева (или справа при левостороннем расположении) будут заполнены пробелами.
• Точка, отделяющая ширину поля от величины, устанавливающей точность.
• Число (точность), специфицирующее максимальное количество печатаемых символов в строке, или количество цифр после десятичной точки - для чисел с плавающей запятой, или минимальное количество цифр - для целого.
• Буква h, если печатаемое целое должно рассматриваться как short, или l (латинская буква ell), если целое должно рассматриваться как long.
Символы-спецификаторы перечислены в таблице 7.1. Если за % не помещен символ- спецификатор, поведение функции
printf("%.*s", max, s);
Таблица 7.1 Основные преобразования printf
Символ | Тип аргумента; вид печати |
---|---|
d, i | int; десятичное целое |
o | unsigned int; беззнаковое восьмеричное ( |
x, | X unsigned int; беззнаковое шестнадцатеричное целое (без 0x или 0X слева), для 10…15 используются abcdef или ABCDEF |
u | unsigned int; беззнаковое десятичное целое |
c | int; одиночный символ |
s | char *; печатает символы, расположенные до знака \0, или в количестве, заданном точностью |
f | double; [-]m.dddddd, где количество цифр d задается точностью (по умолчанию равно 6) |
e, E | double; [-]m.dddddde+xx или [-]m.ddddddE+xx, где количество цифр d задается точностью (по умолчанию равно 6) |
g, G | double; использует %e или %E, если порядок меньше, чем -4, или больше или равен точности; в противном случае использует %f. Завершающие нули и завершающая десятичная точка не печатаются |
p | void *; указатель (представление зависит от реализации) |
% | Аргумент не преобразуется; печатается знак % |