символы поля типа 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.hhhhp±dd, где h.hhhh шестнадцатеричные цифры (с использованием строчные буквы мантиссы), и dd один или несколько цифр для экспоненты.Точность определяет количество цифр после точки. |
A |
С плавающей запятой |
Подписанная шестнадцатеричная двойной точности с плавающей запятой, имеет форму − []0Xh.hhhhP±dd, где 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