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.hhhhp±dd, 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.hhhhP±dd, 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.
![]() |
---|
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