Sdílet prostřednictvím


Znaky pole typu printf

Ve specifikaci formátu type je znak specifikátor převodu, která určuje, zda je odpovídající argument vykládají jako znak, řetězec, ukazatel, celé číslo nebo číslo s plovoucí desetinnou čárkou.type Znak je pouze požadované pole Specifikace formátu a po všechna volitelná pole, zobrazí se.

Argumenty, které následují formátovacím řetězci jsou interpretovány podle odpovídajících type znak a volitelný velikost předpony.Převody typů znaků char a wchar_t jsou určeny pomocí c nebo C, a jednobajtové a vícebajtové nebo široký znak řetězce jsou určeny pomocí s nebo S, podle toho, jaké formátování funkce používá.Řetězec znaků a argumenty, které jsou určeny pomocí c a s jsou interpretovány jako char a char* ve printf řady funkcí, nebo jako wchar_t a wchar_t* ve wprintf řady funkcí.Řetězec znaků a argumenty, které jsou určeny pomocí C a S jsou interpretovány jako wchar_t a wchar_t* ve printf řady funkcí, nebo jako char a char* ve wprintf řady funkcí.

Integer types such as short, int, long, long long, and their unsigned variants, are specified by using d, i, o, u, x, and X.Floating-point types such as float, double, and long double, are specified by using a, A, e, E, f, g, and G.Ve výchozím nastavení pokud jsou pozměněny tak, že size pole Délka předpony, celočíselných argumentů přiřadit k int typ a argumenty s plovoucí desetinnou čárkou jsou přiřazena double.V 64bitových systémech int je 32bitová hodnota; Proto budou 64bitové celá čísla zkráceny, když je formátován pro výstup, pokud size předponu ll nebo I64 se používá.Typy ukazatelů, které jsou určeny pomocí p použít výchozí délku pro platformu.

[!POZNÁMKA]

C, S, A Z zadejte znaky a chování c a s znaky se používají printf a wprintf funkce, jsou rozšíření Microsoft a nejsou kompatibilní ANSI.Visual C++nepodporuje F znak.

printf typ pole znaků

Znak typu

Argument

Výstupní formát

c

Znak

Při použití s printf funkce, určuje jednobajtových znaků; Při použití s wprintf funkce, určuje širokého znaku.

C

Znak

Při použití s printf funkce, určuje široký znak; Při použití s wprintf funkce, určuje jednobajtových znaků.

d

Integer

Desetinné číslo se znaménkem.

i

Integer

Desetinné číslo se znaménkem.

o

Integer

Osmičkové číslo bez znaménka.

u

Integer

Desítkové celé číslo bez znaménka.

x

Integer

Šestnáctkové celé číslo bez znaménka; používá "abcdef".

X

Integer

Šestnáctkové celé číslo bez znaménka; používá "ABCDEF".

e

S plovoucí desetinnou čárkou

Podepsanou hodnotu, která má tvar [-]d.dddde znakdd[d] kde d je jednu desítkovou číslici, dddd je jeden nebo více desítkových číslic, dd[d] je dva nebo tři desítkové číslice, v závislosti na výstupní formát a velikost exponent, a znak je + nebo –.

E

S plovoucí desetinnou čárkou

Stejný e s výjimkou formátu E spíše než e představuje exponent.

f

S plovoucí desetinnou čárkou

Podepsanou hodnotu, která má tvar [-]dddd.dddd, kde dddd je jeden nebo více desítkových číslic.Počet číslic před desetinnou čárkou závisí na velikosti čísla a počet číslic za desetinnou čárkou závisí na požadované přesnosti.

g

S plovoucí desetinnou čárkou

Podepsané hodnoty jsou zobrazeny v f nebo e formátování, podle toho, co je pro danou hodnotu a přesnost kompaktnější.e Formát se používá pouze v případě, že exponent hodnota je menší než –4 nebo větší než nebo rovná precision argument.Koncové nuly jsou odstraněny a desetinné čárky zobrazí pouze v případě, že je jeden nebo více číslic podle něj.

G

S plovoucí desetinnou čárkou

Stejný g formátu, s výjimkou E, spíše než e, představuje exponent (podle potřeby).

a

S plovoucí desetinnou čárkou

Podepsané šestnáctkovou hodnotu s plovoucí desetinnou čárkou s dvojitou přesností, která má tvar [−] 0 xh.hhhhdd, kde h.hhhh hex číslic (pomocí malých písmen) v mantise a dd jsou jednu nebo více číslic exponentu. Přesnost určuje počet číslic po bodu.

A

S plovoucí desetinnou čárkou

Podepsané šestnáctkovou hodnotu s plovoucí desetinnou čárkou s dvojitou přesností, která má tvar [−] 0 Xh.hhhhdd, kde h.hhhh hex číslic (s použitím velkých písmen) v mantise a dd jsou jednu nebo více číslic exponentu. Přesnost určuje počet číslic po bodu.

n

Odkaz na celé číslo

Počet znaků, které úspěšně zapsány doposud do proudu nebo vyrovnávací paměti.Tato hodnota je uložena v celé číslo, jehož adresa je uvedena jako argument.Viz poznámka zabezpečení dále v tomto článku.

p

Typ ukazatele

Argument zobrazí jako adresa v šestnáctkové číslice.

s

Řetězec

Při použití s printf funkce, určuje jeden bajt nebo vícebajtové znakové řetězce; Při použití s wprintf funkce, určuje řetězec širokého znaku.Znaky jsou zobrazeny až první znak null nebo dokud precision je dosaženo hodnoty.

S

Řetězec

Při použití s printf funkce, určuje řetězec širokého znaku; Při použití s wprintf funkce, určuje jeden bajt nebo vícebajtové znakové řetězce.Znaky jsou zobrazeny až první znak null nebo dokud precision je dosaženo hodnoty.

Z

ANSI_STRINGnebo UNICODE_STRING konstrukce

Když adresu ANSI_STRING nebo UNICODE_STRING strukturu, je předáno jako argument, zobrazí řetězec, který je obsažen ve vyrovnávací paměti, která je nastavena tak, že Buffer struktury pole.Použijte modifikátor předponou délky w k určení UNICODE_STRING argument, například %wZ.Length Pole struktury musí být nastaven na délku řetězce v bajtech.MaximumLength Pole struktury musí být nastavena délka vyrovnávací paměti v bajtech.

Obvykle Z typ znak se používá pouze v ovladači ladění funkce, které používají specifikaci formátu, jako například dbgPrint a kdPrint.

Pokud argument, který odpovídá specifikátor převod s plovoucí desetinnou čárkou je nekonečné, neurčitou nebo NAN, formátovaný výstup jsou uvedeny v následující tabulce.

Value

Výsledek

+ nekonečno

1. #INFnáhodných číslic

– nekonečno

–1. #INFnáhodných číslic

Neurčitý, (stejně jako tichý NaN)

číslice. #INDnáhodných číslic

NAN

číslice. #NANnáhodných číslic

[!POZNÁMKA]

Pokud Buffer pole argumentu, který odpovídá %Z, nebo argument, který odpovídá %s nebo %S, je nulový ukazatel (prázdné)"se zobrazí.

[!POZNÁMKA]

Výchozí počet číslic exponentu pro zobrazení ve všech formátech exponenciální, je tři.Při použití _set_output_format funkce, můžete nastavit počet číslic zobrazí dvě ale rozbalování třem Pokud potřebnou velikost exponentu.

Poznámka k zabezpečeníPoznámka k zabezpečení

Vzhledem k tomu, %n formát je ze své podstaty nezabezpečené, je ve výchozím nastavení zakázána.Pokud %n je ve formátovacím řetězci je vyvolána obslužná rutina neplatný parametr, jak je popsáno v Ověření parametru.Chcete-li povolit %n pro podporu _set_printf_count_output.

Viz také

Referenční dokumentace

printf, _printf_l, wprintf, _wprintf_l

Syntaxe specifikace formátu: funkce printf a wprintf

Direktivy příznaku

Specifikace šířky printf

Specifikace přesnosti

Specifikace velikosti

_set_output_format