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

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

Аргументы, которые следуют строка формата интерпретируются согласно соответствующий символ type и дополнительный префиксу размер.Преобразования видов шрифта для char и wchar_t определяются с помощью c или C и однобайтовый и несколькими байт или широкий символьная строка определите с помощью s или S в зависимости от того, используется функция форматирования.Символ и строковые аргументы, которые определяются с помощью c и s интерпретируется как char и char* функции семейства printf в виде wchar_t и wchar_t* функции семейства wprintf.Символ и строковые аргументы, которые определяются с помощью C и S интерпретируется как wchar_t и wchar_t* функции семейства printf в виде char и char* функции семейства wprintf.

Целочисленные типы, такие как short, int, long, long long и их варианты unsigned, задаются с помощью d, i, o, u, x и X.Типы с плавающей запятой, например float, double и long double, задаются с помощью a, A, e, E, f, g и G.По умолчанию если они не изменяются префикса длины поля size, аргументы целые числа приводятся к типу int, и с плавающей запятой аргументов приводятся к типу double.На 64 разрядных системах, int 32 бит значение; поэтому 64 разрядные целые числа будут усечены при их форматирование для вывода, если не используется префикс sizell или I64.Типы указателей, определенные вызов p длина по умолчанию для платформы.

ПримечаниеПримечание

C, S и символы типа Z и расширения функциональности символов типа c и s, если они будут использоваться с функциями printf и wprintf, расширения Майкрософт и не ANSI совместимого.Visual C++ не поддерживает символ типа F.

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

Символ типа

Аргумент

Формат вывода

c

Знак

При использовании с функциями printf, определяет однобайтовый символа; при использовании с функциями wprintf, задает расширенный символ.

C

Знак

При использовании с функциями printf, задает расширенный символа; при использовании с функциями wprintf, определяет однобайтовый символ.

d

Integer

Десятичное целое число со знаком.

i

Integer

Десятичное целое число со знаком.

o

Integer

Восьмеричного целого числа без знака.

u

Integer

Unsigned десятичное целое число.

x

Integer

Шестнадцатеричное целое число без знака. использует "abcdef".

X

Integer

Шестнадцатеричное целое число без знака. используется "ABCDEF".

e

С плавающей запятой

Значение со знаком, имеющий форму [ – ]d.dddd e [знакdd[d], где d — один десятичный разряд, dddd один или несколько десятичные разряды, dd[d] 2 или 3 десятичные цифры в зависимости от формат вывода и размера экспонента, и знак — плюс или минус.

E

С плавающей запятой

Аналогична формат за исключением того, что Ee вместо e вставляет экспонента.

f

С плавающей запятой

Со знаком, которое имеет форму [ – ]dddd.dddd, где dddd один или несколько десятичные цифры.Количество цифр перед десятичной точкой зависит от порядка числа, а количество цифр после десятичной точки зависит от указанной точности.

g

С плавающей запятой

Подписанные значения отображаются в формате f или e, является более компактным для заданного значения и точности.Формат e используется, только если значение экспоненты – меньше 4 или больше или равно аргументу precision.Нули в конце усекаются, а десятичная запятая отображается только в том случае, если один или более цифр за ее.

G

С плавающей запятой

Аналогична формат g, за исключением того, что E вместо e, вставляет экспонентой (при необходимости).

a

С плавающей запятой

Подписанная шестнадцатеричная двойной точности с плавающей запятой, имеет форму − []0xh.hhhhdd, где h.hhhh шестнадцатеричные цифры (с использованием строчные буквы мантиссы), и dd один или несколько цифр для экспоненты.Точность определяет количество цифр после точки.

A

С плавающей запятой

Подписанная шестнадцатеричная двойной точности с плавающей запятой, имеет форму − []0Xh.hhhhdd, где h.hhhh шестнадцатеричные цифры (с использованием прописные буквы мантиссы), и dd один или несколько цифр для экспоненты.Точность определяет количество цифр после точки.

n

Указатель на целое число

Число символов, успешно записан до сих пор в поток или буфер.Это значение хранится в integer, адрес которого указан в качестве аргумента.См. примечание безопасности ниже в данном разделе.

p

Тип указателя

Указывает аргумент как адрес в шестнадцатеричных цифрах.

s

Строка.

При использовании с функциями printf указывает символьную строку однобайтового или байта; при использовании с функциями wprintf указывает, характерную черту.Символы отображаются до первого нуля-символа или до тех пор, пока не будет достигнут значение precision.

S

Строка.

При использовании с функциями printf указывает, характерную черту; при использовании с функциями wprintf указывает символьную строку однобайтового или байта.Символы отображаются до первого нуля-символа или до тех пор, пока не будет достигнут значение precision.

Z

структура ANSI_STRING или UNICODE_STRING

Если адрес или ANSI_STRINGUNICODE_STRING структуры передается в качестве аргумента, отображается строка, заключенная в буфере, который указан в поле Buffer структуры.Использование модификатора длины префикса w для определения UNICODE_STRING аргумент- для примера, %wZ.Поле Length структуры должно иметь значение длины, в байтах, строки.Поле MaximumLength структуры должно иметь значение длина (в байтах) буфера.

Как правило, символ типа Z используется только в функциях отладки драйвера, которые используют спецификацию формата, например dbgPrint и kdPrint.

Если аргумент, соответствующий описателю преобразования с плавающей точкой будет выполняться бесконечно, индефинитн или NAN, в следующей таблице перечислены форматированный вывод.

Значение

Output

+ infinity

1.#INFслучайн-цифры

– infinity

– 1.#INFслучайн-цифры

Индефинитный (аналогично тихо Nan)

digitrandom-цифры. #IND

NAN

digitrandom-цифры. #NAN

ПримечаниеПримечание

Если поле Buffer, который соответствует аргумента %Z или аргумента, который соответствует %s или %S, указатель, "(NULL)" отображается.

ПримечаниеПримечание

Во всех степенных форматах, количество цифр экспоненты по умолчанию, отображаемое 3.С помощью функции _set_output_format можно задать количество цифр, отображаемое в 2, но развернуть значение 3, если потребовано размером экспоненты.

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

Поскольку формат %n является нестабильный, он запрещен по умолчанию.Если %n обнаруживается в строке формата, обработчик вызывается недопустимого параметра, как описано в разделе Проверка параметров.Чтобы включить поддержку %n см. в разделе _set_printf_count_output.

См. также

Ссылки

printf, _printf_l, wprintf, _wprintf_l

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

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

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

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

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

_set_output_format