Поделиться через


Синтаксис описания формата: функции printf и wprintf

Описывается синтаксис для строковых аргументов формата к printf, wprintf и связанных функций.Более безопасные версии этих функций доступны; дополнительные сведения см. в разделе Средства безопасности в CRT.Дополнительные сведения об отдельных функциях см. в документации для этих определенных функций.Список этих функций см. в разделе Поток ВВОДА-ВЫВОДА.

Спецификация формата, состоящую из дополнительного и обязательных полей, имеет следующую форму:

%[флажки] [ширина] [.точность] [{h | l | ll | w | I | I32 | типI64}]

Каждое поле спецификации формата символа или число, означает конкретный описатель формата параметра или преобразования.Обязательный знак type определяет тип преобразования, применяются к аргументу.Необязательное flags, width и аспекты формата дополнительных полей элемента управления precision.Базовая спецификация формата содержит только символ процента и type символ- для примера %s, указывающий преобразование строк.Если символ процента следует символ, который не имеет значение как поле формата, символ копируется на выходные данные вносятся изменения.Чтобы вывести символ знака процента, используйте %%.

Поля управления спецификации формата следующие аспекты преобразования и формата аргумента:

  • type
    Обязательный знак описателя преобразования, который определяет, является ли связанный атрибут argument интерпретируется как символ, строки, целого числа или числа с плавающей запятой.Для получения дополнительной информации см. символы поля типа printf.

  • flags
    Дополнительный символ или символы, обоснование вывода элемента управления и вывод подписей, пробелов, предшествующих нулей, десятичных запятой и восьмиштырьковых и шестнадцатеричных префиксов.Для получения дополнительной информации см. Пометить директивы.Несколько флажок может появиться в спецификацию формата и флажки могут размещаться в любом порядке.

  • width
    Необязательный десятичное число, указывающее минимальное количество символов, производными.Для получения дополнительной информации см. спецификация ширины printf.

  • precision
    Необязательный десятичное число, указывающее максимальное количество символов, которые будут напечатаны вместе для строк, количество значащих цифр или символов числа цифр после десятичной запятой для плавающей запятой или минимальное число цифр, напечатаны для целочисленных значений.Дополнительные сведения см. в разделе "как тип влияние значений точности" раздела Спецификация точности.

  • h | l | ll | w | I | I32 | I64
    Необязательные префиксы в type, определяющих размер соответствующего аргумента.Дополнительные сведения см. в разделе " префиксы размера" раздела Спецификация размера.

Примечание о безопасностиПримечание по безопасности

Убедитесь, что строки спецификации формата не определяемый пользователем.Например, рассмотрим программы, которая предлагает пользователю ввести имя и сохраняет данные в строковую переменную с именем name.Для печати не name, выполните следующие действия:

printf( name ); /* Danger! If name contains "%s", program will crash */

Вместо этого выполните следующие действия:

printf( "%s", name );

См. также

Ссылки

printf, _printf_l, wprintf, _wprintf_l

printf_s, _printf_s_l, wprintf_s, _wprintf_s_l

позиционных параметров printf_p

Пометить директивы

спецификация ширины printf

Спецификация точности

Спецификация размера

символы поля типа printf