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.hhhhdd, 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.hhhhdd, 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.

Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

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

Dyrektywy flagowania

printf — Specyfikacje szerokości

Specyfikacja dokładności

Specyfikacja rozmiaru

_set_output_format