Для вывода отдельного символа используйте %с. В результате соответствующий аргумент будет выведен на экран без изменения.
Для вывода строки используйте %s.
Вывод чисел
Числа в десятичном формате со знаком отображаются с помощью спецификатора преобразования %d или %i. Эти спецификаторы преобразования эквивалентны; оба поддерживаются в силу сложившихся привычек программистов, например, из-за желания поддерживать те же спецификаторы, которые применяются в функции scanf().
Для вывода целого значения без знака используйте %u.
Спецификатор преобразования %f дает возможность выводить числа в формате с плавающей точкой. Соответствующий аргумент должен иметь тип double.
Спецификаторы преобразования %e и %E в функции printf() позволяют отображать аргумент типа double в экспоненциальном формате. В общем виде числа в таком формате выглядят следующим образом:
x.dddddE+/-yy
Чтобы отобразить букву E в верхнем регистре, используйте спецификатор преобразования %E; в противном случае используйте спецификатор преобразования %e.
|
|
Спецификатор преобразования %g или %G указывает, что функции printf() необходимо выбрать один из спецификаторов: %f или %e. В результате printf() выберет тот спецификатор преобразования, который позволяет сделать самый короткий вывод. Если нужно, чтобы при выборе экспоненциального формата буква E отображалась на верхнем регистре, используйте спецификатор преобразования %G; в противном случае используйте спецификатор преобразования %g.
Применение спецификатора преобразования %g показано в следующей программе:
#include <stdio.h>
int main(void)
{
double f;
for(f=1.0; f<1.0e+10; f=f*10)
printf("%g ", f);
return 0;
}
В результате выполнения получится следующее:
1 10 100 1000 10000 100000 1e+06 1e+07 1e+08 1e+09
Целые числа без знака можно выводить в восьмеричном или шестнадцатеричном формате, используя спецификатор преобразования %o или %x. Так как в шестнадцатеричной системе для представления чисел от 10 до 15 используются буквы от А до F, то эти буквы можно выводить на верхнем или на нижнем регистре. Как показано ниже, в первом случае используется спецификатор преобразования %X, а во втором — спецификатор преобразования %x:
#include <stdio.h>
int main(void)
{
unsigned num;
for(num=0; num < 16; num++) {
printf("%o ", num);
printf("%x ", num);
printf("%X\n", num);
}
return 0;
}
Вот что вывела эта программа:
0 0 0
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
7 7 7
10 8 8
11 9 9
12 a A
13 b B
14 c C
15 d D
16 e E
17 f F