printf-Typenfeldzeichen
In einer Formatangabe ist das type Zeichen ein dem Konvertierungsspezifizierer, der angibt, ob das entsprechende Argument als Zeichen, Zeichenfolge, Zeiger, Ganzzahl- oder Gleitkommazahl interpretiert werden soll. Das Zeichen type ist das einzige erforderliche Formatangabenfeld, und wird nach allen optionalen Feldern.
Die Argumente, die der Formatzeichenfolge folgen, werden nach dem entsprechenden type Zeichen und dem optionalen Präfix Größe interpretiert. Konvertierungen für Zeichentypen char und wchar_t angegeben, indem Sie c oder C verwendet, und Einzelbyte- und MULTIByte oder Zeichenfolgen mit Breitzeichen werden angegeben, indem Sie s oder S verwendet, von denen je Formatierungsfunktion verwendet wird. Zeichen und die Argumente, die angegeben werden, indem c verwendet und s als char und char* von printf Familienfunktionen interpretiert werden oder als wchar_t und wchar_t* von wprintf Familienfunktionen. Zeichen und die Argumente, die angegeben werden, indem C verwendet und S als wchar_t und wchar_t* von printf Familienfunktionen interpretiert werden oder als char und char* von wprintf Familienfunktionen.
Ganzzahl- gibt wie short, int, long, long long, und ihre unsigned Varianten, angegeben werden, indem d, i, o, u, x und X verwendet. Gleitkommatypen wie float, double und long double, angegeben werden, indem a, A, e, E, f, g und G verwendet. Standardmäßig, sofern sie nicht durch ein size Feldlängenpräfix geändert werden, werden ganzzahlige Argumente an int-Typ umgewandelt, und Gleitkommaargumente werden in double umgewandelt. Bei 64-Bit-Systemen ist int 32-Bit-Wert; Daher werden 64-Bit-Ganzzahlen verkürzt, wenn sie für Ausgabezwecke formatiert werden, es sei denn, dass ein size Präfix von ll oder I64 verwendet wird. Zeigertypen, die von p verwendet die Standardlänge für die Plattform angegeben werden.
Hinweis
C, S und Z-Typzeichen und das Verhalten der c und Typzeichen s, wenn sie mit den Funktionen printf und wprintf verwendet werden, wenn die Microsoft-Erweiterungen sind und nicht konformem ANSI sind.Visual C++ unterstützt nicht das Typzeichen F.
printf-Typ-Feld-Zeichen
Typzeichen |
Argument |
Ausgabeformat |
---|---|---|
c |
Zeichen |
Wenn Sie mit printf verwendet werden, wird, gibt ein Einzelbytezeichen an; wenn mit wprintf verwendet werden, wird, gibt einem Breitzeichen an. |
C |
Zeichen |
Wenn Sie mit printf verwendet werden, wird, gibt einem Breitzeichen an; wenn mit wprintf verwendet werden, wird, gibt ein nebeneinander an. |
d |
Integer |
Dezimales ganze Zahl mit Vorzeichen. |
i |
Integer |
Dezimales ganze Zahl mit Vorzeichen. |
o |
Integer |
Oktale ganze Zahl ohne Vorzeichen. |
u |
Integer |
Dezimales ganze Zahl ohne Vorzeichen. |
x |
Integer |
Hexadezimale ganze Zahl ohne Vorzeichen; Verwendung "abcdef". |
X |
Integer |
Hexadezimale ganze Zahl ohne Vorzeichen; Verwendung "ABCDEF". |
e |
Gleitkomma |
Wert mit Vorzeichen im Format [ – ]d.dddd e [Vorzeichen]dd[d], wobei d eine Dezimalstelle ist, dddd eine oder mehrere Dezimalstellen, ist dd[d] zwei oder drei Dezimalstellen abhängig vom Ausgabeformat und der Größe und Exponentenwerte, Vorzeichen oder -. |
E |
Gleitkomma |
Entspricht dem e - Stil außer dass E statt e stellt den Exponenten vor. |
f |
Gleitkomma |
Wert mit Vorzeichen im Format [ – ]dddd.dddd, wobei dddd eine oder mehrere Dezimalstellen sind. Die Anzahl der Ziffern vor dem Dezimaltrennzeichen ist abhängig von der Größe der Zahl, und die Anzahl der Ziffern nach dem Dezimaltrennzeichen ist abhängig von der angeforderten Genauigkeit. |
g |
Gleitkomma |
Werte mit Vorzeichen werden in f oder e, welches Format angezeigt kompakter für den angegebenen Wert und die Genauigkeit ist. Das e - Format wird nur bei der Exponent des Werts kleiner als - 4 oder größer oder gleich dem precision-Argument verwendet. Nachfolgende Nullen werden abgeschnitten und das Dezimaltrennzeichen wird nur angezeigt, wenn mindestens Ziffern ihn befolgen. |
G |
Gleitkomma |
Entspricht dem g Format, außer dass E, und nicht e, den Exponenten einführt (ggf.). |
a |
Gleitkomma |
Hexadezimale Gleitkommazahl mit doppelter Genauigkeit mit Vorzeichen im Format [−]0xh.hhhh p±dd, wobei h.hhhh die hexadezimalen Ziffern (mit Kleinbuchstaben) der Mantisse und dd ein oder mehr Ziffern für den Exponenten sind. Die Genauigkeit gibt die Anzahl von Ziffern nach dem Punkt an. |
A |
Gleitkomma |
Hexadezimaler Gleitkommazahl mit doppelter Genauigkeit mit Vorzeichen im Format [−]0Xh.hhhh P±dd, wobei h.hhhh die hexadezimalen Ziffern (mit Großbuchstaben) der Mantisse und dd ein oder mehr Ziffern für den Exponenten sind. Die Genauigkeit gibt die Anzahl von Ziffern nach dem Punkt an. |
n |
Zeiger die ganze Zahl |
Anzahl Zeichen, die erfolgreich bis jetzt zum Stream oder in den Puffer geschrieben werden. Dieser Wert wird in die Ganzzahl gespeichert, dessen Adresse als Argument erhält. Siehe den Sicherheitshinweis später in diesem Artikel. |
p |
Zeigertyp |
Zeigt das Argument als Adresse in den Folgendes an. |
s |
Zeichenfolge |
Wenn Sie mit printf-Funktionen verwendet werden, gibt eine Einzelbyte- oder MULTIBytezeichenfolge an; wenn mit wprintf verwendet werden, wird, gibt eine Zeichenfolge mit Breitzeichen an. Zeichen sind bis zum ersten NULL-Zeichen angezeigt, oder bis precision wird der Wert erreicht. |
S |
Zeichenfolge |
Wenn Sie mit printf verwendet werden, wird, gibt eine Zeichenfolge mit Breitzeichen an; wenn mit wprintf-Funktionen verwendet werden, gibt eine Einzelbyte- oder MULTIBytezeichenfolge an. Zeichen sind bis zum ersten NULL-Zeichen angezeigt, oder bis precision wird der Wert erreicht. |
Z |
ANSI_STRING oder UNICODE_STRING-Struktur |
Wenn die Adresse von ANSI_STRING oder UNICODE_STRING von Struktur als Argument übergeben wird, zeigt die Zeichenfolge, die im Puffer enthalten wird, auf den das Buffer Feld der Struktur angezeigt wird. Verwenden Sie ein Längenmodifiziererpräfix von w, um UNICODE_STRING-Argument – z. B. %wZ anzugeben. Das Length - Feld der Struktur muss auf die Länge, in Bytes, der Zeichenfolge festgelegt werden. Das MaximumLength - Feld der Struktur muss auf die Länge, in Bytes, eines Puffers festgelegt werden. In der Regel wird das Z-Typzeichen nur im Treiber verwendet, den, Debuggen, das eine Formatangabe verwenden, wie dbgPrint und kdPrint verwendet wird. |
Wenn das Argument, das einem Gleitkommakonvertierungsspezifizierer entspricht, unendlich ist, unendlich oder NAN, wird folgende Tabelle der formatierten Ausgabe auf.
Wert |
Ausgabe |
---|---|
+ Unendlich |
1.#INFZufälligZiffern |
- Infinity |
- 1.#INFZufälligZiffern |
Unbegrenzt (identisch auf stille Art NaN) |
DigitrandomZiffern. #IND |
NAN |
DigitrandomZiffern. #NAN |
Hinweis
Wenn das Buffer Feld des Arguments, das zu %Z oder vom Argument entspricht, das an %s oder %S entspricht, ein NULL-Zeiger ist, "(NULL)" angezeigt wird.
Hinweis
In allen exponentiellen Methoden liegt die Standardanzahl von Ziffern anzuzeigen Exponentenwerte sich drei.Durch die _set_output_format-Funktion verwenden, können Sie die Anzahl der Ziffern festlegen, die auf zwei aber dem Erweitern bis drei angezeigt werden, wenn durch die Größe Exponentenwerte geforderte.
Sicherheitshinweis |
---|
Da %n das Format grundsätzlich Sicherheitsrisiko, wird es standardmäßig deaktiviert.Wenn %n in einer Formatzeichenfolge erreicht wird, wird der ungültige Parameterhandler aufgerufen, wie in Parametervalidierung beschrieben.Um %n Unterstützung zu ermöglichen, finden Sie unter _set_printf_count_output. |
Siehe auch
Referenz
printf, _printf_l, wprintf, _wprintf_l