printf — Znaki pola typu
W specyfikacji formatu type znak jest specyfikator konwersji, który określa, czy mają być interpretowane jako znak, ciąg, wskaźnik, liczba całkowita lub liczba zmiennoprzecinkowa odpowiednie argumenty.type Znak jest tylko wymagane pola Specyfikacja formatu i wydaje się po jakieś pola opcjonalne.
Argumenty, które należy wykonać ciąg formatu są interpretowane zgodnie z odpowiedniego type charakter oraz opcjonalny rozmiar prefiks.Konwersje typów znaków o char i wchar_t są określane za pomocą c lub C, i ciągi znaków jednobajtowych i wielobajtowe lub szeroko znakowe są określane za pomocą s lub S, w zależności od funkcji formatowania jest używany.Znaków i ciąg argumenty, które są określone za pomocą c i s , są interpretowane jako char i char* przez printf funkcje rodziny, lub jako wchar_t i wchar_t* przez wprintf funkcje rodziny.Znaków i ciąg argumenty, które są określone za pomocą C i S , są interpretowane jako wchar_t i wchar_t* przez printf funkcje rodziny, lub jako char i char* przez wprintf funkcje rodziny.
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.Domyślnie chyba że zostaną one zmienione przez size pola Długość prefiksu całkowitą argumenty są przekształcone na int typu i zmiennoprzecinkowych argumenty są przekształcone na double.W systemach 64-bitowych int jest wartością 32-bitowe; w związku z tym, zostaną obcięte 64-bitowe liczby całkowite, gdy są formatowane do wydruku chyba że size prefiks ll lub I64 jest używany.Typy wskaźnika, które są określone przez p użyć domyślną długość platformy.
[!UWAGA]
C, S, I Z wpisz znaki i zachowanie c i s wpisz znaki, gdy są one używane z printf i wprintf funkcje, rozszerzenia Microsoft i nie są kompatybilne ANSI.Visual C++nie obsługuje F należy wpisać znak.
printf znaki pola Typ
Typ znaku |
Argument |
Format wyjściowy |
---|---|---|
c |
Znak |
Gdy używana z printf funkcje, określa znaków jednobajtowych; gdy używana z wprintf funkcje, określa znak dwubajtowy. |
C |
Znak |
Gdy używana z printf funkcje, określa znak dwubajtowy; gdy używana z wprintf funkcje, określa znaków jednobajtowych. |
d |
Liczba całkowita |
Podpisana liczba dziesiętna. |
i |
Liczba całkowita |
Podpisana liczba dziesiętna. |
o |
Liczba całkowita |
Całkowitą liczbę ósemkową bez znaku. |
u |
Liczba całkowita |
Dziesiętna liczba całkowita bez znaku. |
x |
Liczba całkowita |
Szesnastkowa liczba całkowita bez znaku; używa "abcdef". |
X |
Liczba całkowita |
Szesnastkowa liczba całkowita bez znaku; używa "ABCDEF". |
e |
Zmiennoprzecinkowe |
Podpisane wartość, która ma postać [-]d.dddde znakdd[d] gdzie d jest jednej cyfry dziesiętnej, dddd jest jeden lub więcej cyfr dziesiętnych, dd[d] jest dwóch lub trzech cyfr dziesiętnych w zależności od format wyjściowy i rozmiar wykładnik, i znak jest + lub. |
E |
Zmiennoprzecinkowe |
Identyczne z e format z wyjątkiem E zamiast e wprowadza wykładnik potęgi. |
f |
Zmiennoprzecinkowe |
Podpisane wartość, która ma postać [-]dddd.dddd, gdzie dddd jest jeden lub więcej cyfr dziesiętnych.Liczba cyfr przed przecinkiem dziesiętnym zależy od wartości liczby, natomiast liczba cyfr po przecinku dziesiętnym zależy od żądanej dokładności. |
g |
Zmiennoprzecinkowe |
Podpisane wartości są wyświetlane w f lub e format, w zależności, która wartość jest bardziej zwarty danej wartości i precyzji.e Format jest używany tylko wtedy, gdy wykładnik wartości jest mniejsza niż -4 lub większą lub równą precision argument.Końcowe zera są ucinane i dziesiętnego pojawia się tylko wtedy, gdy jeden lub więcej cyfr po nim następują. |
G |
Zmiennoprzecinkowe |
Identyczne z g sformatować, chyba że E, a nie e, wprowadza wykładnik (gdzie stosowne). |
a |
Zmiennoprzecinkowe |
Podpisany szesnastkową wartość zmiennoprzecinkowa podwójnej precyzji, który ma postać [−] 0 xh.hhhhp±dd, gdzie h.hhhh są znaków szesnastkowych (przy użyciu małych liter) mantysy, i dd są jedną lub więcej cyfr dla wykładnik. Dokładność określa liczbę cyfr po punkcie. |
A |
Zmiennoprzecinkowe |
Podpisany szesnastkową wartość zmiennoprzecinkowa podwójnej precyzji, który ma postać [−] 0 Xh.hhhhP±dd, gdzie h.hhhh są znaków szesnastkowych (przy użyciu dużych liter) mantysy, i dd są jedną lub więcej cyfr dla wykładnik. Dokładność określa liczbę cyfr po punkcie. |
n |
Wskaźnik do całkowitej |
Liczba znaków, które są pomyślnie zapisane do tej pory strumienia lub buforu.Wartość ta jest zapisana w liczbę całkowitą, którego adres jest podany jako argument.Patrz Uwaga zabezpieczeń w dalszej części tego artykułu. |
p |
Typ wskaźnika |
Wyświetla argument jako adresu cyfr szesnastkowych. |
s |
Ciąg |
Gdy używana z printf funkcje, określa ciąg znaków jednobajtowych lub wielobajtowego; gdy używana z wprintf funkcje, określa ciąg znaków wide.Znaki są wyświetlane do pierwszego znaku null lub do precision jest osiągnięta wartość. |
S |
Ciąg |
Gdy używana z printf funkcje, określa ciąg znaków wide; gdy używana z wprintf funkcje, określa ciąg znaków jednobajtowych lub wielobajtowego.Znaki są wyświetlane do pierwszego znaku null lub do precision jest osiągnięta wartość. |
Z |
ANSI_STRINGlub UNICODE_STRING struktury |
Gdy adres ANSI_STRING lub UNICODE_STRING struktury jest przekazywana jako argument, wyświetla ciąg znaków, który znajduje się w buforze, który jest wskazywany przez Buffer pola struktury.Używać długość prefiksu modyfikator z w do określenia UNICODE_STRING argument — na przykład, %wZ.Length Pola struktury musi być równa długość ciągu w bajtach.MaximumLength Pola struktury musi być równa długość buforu w bajtach. Zazwyczaj Z znaku typu jest używana tylko w sterownik debugowanie funkcje korzystające specyfikację formatu, takie jak dbgPrint i kdPrint. |
Jeśli argument, który odpowiada specyfikator zmiennoprzecinkowych konwersji jest nieskończony, nieokreślony lub NAN, w poniższej tabeli wymieniono sformatowane dane wyjściowe.
Wartość |
Dane wyjściowe |
---|---|
+ nieskończoność |
1. #INFlosowe cyfry |
-nieskończoność |
–1. #INFlosowe cyfry |
Nieokreślony (tak samo jak cichy NaN) |
cyfra. #INDlosowe cyfry |
NAN |
cyfra. #NANlosowe cyfry |
[!UWAGA]
Jeśli Buffer pole argumentu, który odpowiada %Z, lub argumentu, który odpowiada %s lub %S, jest pusty wskaźnik "(null)" będą wyświetlane.
[!UWAGA]
We wszystkich formatach wykładniczej domyślną liczbę cyfr wykładnika do wyświetlania jest trzy.Za pomocą _set_output_format funkcji, można ustawić liczbę cyfr wyświetlany do dwóch, ale rozszerzanie do trzech, jeżeli wymagane przez rozmiar wykładnik.
![]() |
---|
Ponieważ %n format jest z natury niebezpieczne, jest domyślnie wyłączona.Jeśli %n wystąpi w ciągu formatu obsługi nieprawidłowy parametr jest wywoływany, zgodnie z opisem w Sprawdzanie poprawności parametru.Aby włączyć %n obsługi, zobacz _set_printf_count_output. |
Zobacz też
Informacje
printf, _printf_l, wprintf, _wprintf_l
Składnia specyfikacji formatu: funkcje printf i wprintf