printf-Typ-Feld-Zeichen
In einer Formatangabe ist das type Zeichen ein Konvertierungsspezifizierer, der angibt, ob das entsprechende Argument als Zeichen, Zeichenfolge, Zeiger, ganze Zahl oder Gleitkommazahl interpretiert werden soll.Das type Zeichen 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 Größe Präfix interpretiert.Konvertierungen für Zeichentypen char und wchar_t werden angegeben, indem c oder C verwendet, und Einzelbyte- und MULTIByte oder Breitzeichen-Zeichenfolgen werden angegeben, indem s oder S verwendet, je nach Formatierungsfunktion verwendet wird.Zeichen und Zeichenfolgenargumente, die angegeben werden, indem c verwendet und s als char und char* durch printf Familienfunktionen interpretiert werden oder als wchar_t und wchar_t* durch wprintf Familienfunktionen.Zeichen und Zeichenfolgenargumente, die angegeben werden, indem C verwendet und S als wchar_t und wchar_t* durch printf Familienfunktionen interpretiert werden oder als char und char* durch wprintf Familienfunktionen.
Integer-Typen wie short, int, long, long long und ihre unsigned Varianten, werden angegeben, indem d, i, o, u, x und X verwendet.Gleitkommatypen wie float, double und long double, werden angegeben, 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 zu int-Typ umgewandelt, und Gleitkommaargumente werden zu double umgewandelt.Bei 64-Bit-Systemen ist int 32-Bit-Wert; Daher werden 64-Bit-Ganzzahlen abgeschnitten, wenn sie für Ausgabe formatiert werden, es sei denn, ein size Präfix von ll oder von 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 s-Typzeichen, wenn sie mit den printf und wprintf-Funktionen verwendet werden, Microsoft-Erweiterungen sind und ANSI nicht kompatibel sind.Visual C++ unterstützt nicht das F-Typzeichen. |
printf-Typ-Feld-Zeichen
Typzeichen |
Argument |
Ausgabeformat |
---|---|---|
c |
Zeichen |
Wenn Sie mit printf verwendet werden, funktioniert, gibt ein Einzelbytezeichen an; Wenn Sie mit wprintf verwendet werden, funktioniert, gibt ein Breitzeichen an. |
C |
Zeichen |
Wenn Sie mit printf verwendet werden, funktioniert, gibt ein Breitzeichen an; Wenn Sie mit wprintf verwendet werden, funktioniert, gibt ein nebeneinander an. |
d |
Ganze Zahl |
Dezimale ganze Zahl mit Vorzeichen. |
i |
Ganze Zahl |
Dezimale ganze Zahl mit Vorzeichen. |
o |
Ganze Zahl |
Oktale ganze Zahl ohne Vorzeichen. |
u |
Ganze Zahl |
Dezimales ganze Zahl ohne Vorzeichen. |
x |
Ganze Zahl |
Hexadezimale ganze Zahl ohne Vorzeichen; Verwenden Sie "abcdef". |
X |
Ganze Zahl |
Hexadezimale ganze Zahl ohne Vorzeichen; Verwenden Sie "ABCDEF". |
e |
Gleitkomma |
Wert mit Vorzeichen, der das Formular [] -d.dddd e Zeichen[]dd[d] verfügt, wo d eine Dezimalstelle ist, dddd ist eine oder mehrere Dezimalstellen, ist dd[d] zwei oder drei Dezimalstellen abhängig von Ausgabeformat und Größe des Exponenten, und Zeichen ist + oder -. |
E |
Gleitkomma |
Entspricht dem e-Format, außer dass E statt e den Exponenten einführt. |
f |
Gleitkomma |
Wert mit Vorzeichen, der die Form [ - ]dddd.dddd hat, wo 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 in e-Format angezeigt, das kompakter für den angegebenen Wert und die Genauigkeit ist.Das e Format wird nur bei der Exponent des Werts kleiner als ist –4 oder größer oder gleich dem precision-Argument verwendet.Nachfolgende Nullen werden abgeschnitten und das Dezimaltrennzeichen wird nur angezeigt, wenn eine oder mehrere Ziffern ihm folgen. |
G |
Gleitkomma |
Entspricht dem g Format, außer dass zu E, anstatt e, stellt den Exponenten vor (bei Bedarf). |
a |
Gleitkomma |
Hexadezimaler Gleitkommawert mit doppelter Genauigkeit mit Vorzeichen, der die Form [−]0x0xh.hhhhp±dd hat, wo die h.hhhh hexadezimalen Stellen (mithilfe der Kleinbuchstaben) der Mantisse sind und dd eine oder mehrere Ziffern für den Exponenten sind.Die Genauigkeit gibt die Anzahl der Ziffern nach dem Punkt an. |
A |
Gleitkomma |
Hexadezimaler Gleitkommawert mit doppelter Genauigkeit mit Vorzeichen, der die Form [−]0X0Xh.hhhhP±dd hat, wo die h.hhhh hexadezimalen Stellen (mithilfe der Großbuchstaben) der Mantisse sind und dd eine oder mehrere Ziffern für den Exponenten sind.Die Genauigkeit gibt die Anzahl der Ziffern nach dem Punkt an. |
n |
Zeiger auf die ganze Zahl |
Anzahl von Zeichen, die erfolgreich bis jetzt den Stream oder in den Puffer geschrieben werden.Dieser Wert wird in der ganzen Zahl gespeichert, deren Adresse als Argument angegeben wird.Siehe den Sicherheitshinweis später in diesem Artikel. |
p |
Zeigertyp |
Zeigt das Argument als Adresse in den Hexadezimalzeichen an. |
s |
Zeichenfolge |
Wenn Sie mit printf-Funktionen verwendet werden, gibt eine Einzelbyte- oder MULTIBytezeichenfolge an; Wenn Sie mit wprintf verwendet werden, funktioniert, gibt eine Zeichenfolge mit Breitzeichen an.Zeichen werden bis zum ersten NULL-Zeichen angezeigt, oder bis precision wird der Wert erreicht. |
S |
Zeichenfolge |
Wenn Sie mit printf verwendet werden, funktioniert, gibt eine Zeichenfolge mit Breitzeichen an; wenn Sie mit wprintf-Funktionen verwendet werden, gibt eine Einzelbyte- oder MULTIBytezeichenfolge an.Zeichen werden 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-Struktur als Argument übergeben wird, wird die Zeichenfolge an, die im Puffer enthalten ist, der von zum 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 zur Länge, in Bytes, der Zeichenfolge festgelegt werden.Das MaximumLength Feld der Struktur muss zur Länge, in Bytes, des Puffers festgelegt werden. In der Regel wird das Z-Typzeichen nur im Treiber verwendet, den, Debuggen, das eine Formatangabe verwenden, wie dbgPrint und kdPrint funktioniert. |
Wenn das Argument, das einem Gleitkommakonvertierungsspezifizierer entspricht, unendlich ist, endlos oder NAN, zeigt die folgende Tabelle die formatierte Ausgabe auf.
Wert |
Ausgabe |
---|---|
+ unendlich |
1.#INFZufälligZiffern |
- Infinity |
- 1.#INFZufälligZiffern |
Unbestimmt (wie auf stille Art NaN) |
DigitrandomZiffern. #IND |
NAN |
DigitrandomZiffern. #NAN |
Hinweis |
---|
Wenn das Buffer Feld des Arguments, das zu %Z oder vom Argument entspricht, das zu %s oder zu %S entspricht, ein NULL-Zeiger ist, "(NULL)" wird angezeigt. |
Hinweis |
---|
In allen exponentiellen Formaten ist die standardmäßige Anzahl von Ziffern anzuzeigen Exponentenwerte drei.Mithilfe der _set_output_format-Funktion verwenden, können Sie die Anzahl von Ziffern festlegen, die zwei jedoch zum Erweitern bis drei angezeigt werden, wenn es durch die Größe des Exponenten angefordert. |
Sicherheitshinweis |
---|
Da das %n Format grundsätzlich nicht sicher ist, 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 aktivieren, finden Sie unter _set_printf_count_output. |
Siehe auch
Referenz
printf, _printf_l, wprintf, _wprintf_l