Syntax der Formatangabe: printf- und wprintf-Funktionen

Beschreibt die Syntax für Formatzeichenfolgenargumente zu printf, zu wprintf und zu verwandten Funktionen.Sicherere Versionen dieser Funktionen sind verfügbar; weitere Informationen finden Sie unter Sicherheitsfeatures im CRT.Informationen zu den einzelnen Funktionen, finden Sie in der Dokumentation für diese speziellen Features.Eine Liste dieser Funktionen, finden Sie unter Stream E/A.

Eine Formatangabe, die optionales und aus Pflichtfeldern besteht, hat das folgende Format:

%Flags[] [] [Breite.Genauigkeit[] {h | l | ll | w | I | I32 | I64}] Typ

Jedes Feld der Formatangabe ist ein Zeichen oder eine Zahl, die einen bestimmten Formatoptions- oder -Konvertierungsspezifizierer angibt.Das erforderliche type Zeichen gibt die Art der zu an einem Argument angewendet werden, Konvertierung.Optionale flags, width und die precision Feldsteuerzusätzlichen Formataspekte.Eine grundlegende Formatangabe enthält nur das Prozentzeichen und type Zeichen – z. B. %s, das eine Zeichenfolgenkonvertierung angibt.Wenn ein Prozentzeichen von einem Zeichen folgt, das keine Bedeutung hat, während ein Formatfeld, das Zeichen unverändert an die Ausgabe kopiert wird.Um ein Prozentzeichen zu drucken, verwenden Sie %%.

Die Felder der Formatangabe steuern die folgenden Aspekte der Argumentkonvertierung und die Formatierung des Datenfelds:

  • type
    Erforderliches Konvertierungsspezifiziererzeichen, das bestimmt, ob zugeordnete argument Zeichen, als Zeichenfolge, ganze Zahl oder Gleitkommazahl interpretiert wird.Weitere Informationen finden Sie unter printf-Typ-Feld-Zeichen.

  • flags
    Optionales Zeichen oder die Zeichen, Ausgaberechtfertigung und Ausgabe von Zeichen, der Leerzeichen, von führenden Nullen, von Dezimaltrennzeichen und von oktalen und der hexadezimalen Präfixen steuern.Weitere Informationen finden Sie unter Flags-Direktive.Mehr als ein Flag kann in einer Formatangabe angezeigt werden, und Flags können in beliebiger Reihenfolge angezeigt werden.

  • width
    Optionale Dezimalzahl, die die kleinste Anzahl von Zeichen an, die ausgegeben werden.Weitere Informationen finden Sie unter printf-Breitenangabe.

  • precision
    Optionale Dezimalzahl, die die maximale Anzahl von Zeichen an, die für Zeichenfolgen, die Anzahl der signifikanten Stellen oder die Anzahl der Ziffern nach dem Dezimaltrennzeichenzeichen für Gleitkommawerte gedruckt werden oder die Mindestanzahl der Ziffern, die für ganzzahlige Werte gedruckt werden.Weitere Informationen finden Sie unter "wie Genauigkeits-Werts-Affekt-Typ" in Genauigkeits-Spezifikation.

  • h | l | ll | w | I | I32 | I64
    Optionale Präfixe zu type, die die Größe des entsprechenden Arguments angeben.Weitere Informationen finden Sie unter, dass " Größe" in Größen-Spezifikation vorangestellt wird.

SicherheitshinweisSicherheitshinweis

Stellen Sie sicher, dass Formatangabenzeichenfolgen keine benutzerdefinierten sind.Betrachten Sie beispielsweise ein Programm, das den Benutzer auffordert, einen Namen einzugeben und speichert die Eingabe in eine Zeichenfolgenvariable, die name genannt wird.Um name zu drucken, tun Sie dies:

printf( name ); /* Danger! If name contains "%s", program will crash */

Stattdessen wird dazu:

printf( "%s", name );

Siehe auch

Referenz

printf, _printf_l, wprintf, _wprintf_l

_printf_s_l, wie, wprintf_s, _wprintf_s_l

printf_p positionelle Parameter

Flags-Direktive

printf-Breitenangabe

Genauigkeits-Spezifikation

Größen-Spezifikation

printf-Typ-Feld-Zeichen