<b>#include <stdio.h></b><b>int printf(const char *format, ...);</b><b>int sprintf(char *s, const char *format, ...);</b><b>int fprintf(FILE * stream, const char *format, ...);</b>Функция
printffprintfstreamsprintfsУ семейства
printfОбычные символы передаются в вывод без изменений. Спецификаторы преобразований заставляют функцию
printf%printf("Some numbers: %d, %d, and &d\n", 1, 2, 3);Он порождает в стандартном выводе следующую строку.
Some numbers: 1, 2, and 3Для вывода символа
%%%Далее перечислены наиболее часто применяемые спецификаторы преобразований:
□
%d%i□
%о%x□
%с□
%s□
%f□
%e□
%gОчень важно, чтобы число и тип аргументов, передаваемых функции
printfformatОн может быть равен
h%hdshort intl%ldlong intprintf-WformatДалее приведен еще один пример:
char initial = 'А';char *surname = "Matthew";double age = 13.5;printf("Hello Mr %c %s, aged %g\n", initial, surname, age);Будет выводиться следующая информация:
Hello Mr A Matthew, aged 13.5Вы можете добиться большего при выводе элементов с помощью спецификаторов полей. Они расширяют возможности спецификаторов преобразований, управляя расположением элементов при выводе. Обычно задается количество десятичных разрядов для числа с плавающей точкой или величина пробельных отступов, обрамляющих строку.
Спецификаторы полей задаются в виде чисел, следующих в спецификаторах преобразований непосредственно за знаком
%Таблица 3.5
| Формат | Аргумент | Вывод |
|---|---|---|
%10s | "Hello" | | Hello| |
%-10s | "Hello" | |Hello | |
%10d | 1234 | | 1234| |
%-10d | 1234 | |1234 | |
%010d | 1234 | |0000001234| |
%10.4f | 12.34 | | 12.3400| |
%*s | 10, "Hello" | | Hello| |
Все приведенные примеры выводятся в поле шириной 10 символов. Обратите внимание на то, что отрицательная ширина поля означает выравнивание элемента по левому краю в пределах поля. Переменная ширина поля обозначается символом "звездочка" (
*printfТаблица 3.6
| Формат | Аргумент | Вывод |
|---|---|---|
%10s | "HelloTherePeeps" | |HelloTherePeeps| |