Syntax der Formatangabe: printf- und wprintf-Funktionen
Beschreibt die Syntax für Argumente von Formatzeichenfolgen, die auf printf, wprintf und verwandte Funktionen verweisen. Sicherere Versionen dieser Funktionen sind verfügbar. Informationen dazu finden Sie unter Sicherheitsfunktionen in der CRT. Informationen zu den einzelnen Funktionen finden Sie in der Dokumentation zu den jeweiligen Funktionen. Eine Auflistung dieser Funktionen finden Sie unter Stream-E/A.
Eine Formatspezifikation, die aus optionalen Feldern und Pflichtfeldern besteht, hat die folgende Form:
%[flags] [width] [.precision] [{h | l | ll | w | I | I32 | I64}] type
Jedes Feld der Formatspezifikation ist entweder ein Zeichen oder eine Zahl, das bzw. die eine bestimmte Formatoption oder Konvertierungsspezifizierer darstellt. Das erforderliche type-Zeichen gibt die Art der Konvertierung an, die an einem Argument vorgenommen wird. Die optionalen Felder flags, width und die precision steuern zusätzliche Formataspekte. Eine einfache Formatspezifikation enthält nur das Prozentzeichen und ein type-Zeichen – z. B. %s für eine Zeichenfolgenkonvertierung. Wenn auf ein Prozentzeichen ein Zeichen ohne Bedeutung als Formatfeld folgt, wird das Zeichen unverändert in die Ausgabe kopiert. Um ein Prozentzeichen zu drucken, verwenden Sie %%.
Die Felder der Formatspezifikation steuern die folgenden Aspekte der Argumentkonvertierung und Formatierung:
type
Erforderlicher Konvertierungsspezifizierer, der bestimmt, ob das dazugehörige argument als Zeichen, Zeichenfolge, ganze Zahl oder Gleitkommazahl interpretiert wird. Weitere Informationen finden Sie unter printf-Typenfeldzeichen.flags
Optionales Zeichen (oder mehrere Zeichen), das die Ausgaberechtfertigung und die Ausgabe von Zeichen, Leerzeichen, führenden Nullen, Dezimaltrennzeichen und von oktalen und hexadezimalen Präfixen steuert. Weitere Informationen finden Sie unter Flag-Direktiven. In einer Formatspezifikation können mehrere Flags in beliebiger Reihenfolge angezeigt werden.width
Optionaler Dezimalwert, der die Mindestanzahl von auszugebenden Zeichen angibt. Weitere Informationen finden Sie unter printf-Breitenangabe.precision
Optionaler Dezimalwert, der die maximale Anzahl von den für Zeichenfolgen zu druckenden Zeichen angibt, die Anzahl der signifikanten Stellen oder die Anzahl von Ziffern nach dem Dezimaltrennzeichen für Gleitkommawerte, oder die Mindestanzahl an Ziffern, die für ganzzahlige Werte gedruckt werden. Weitere Informationen finden Sie in Genauigkeitsangabe unter dem Abschnitt zum Einfluss von Präzisionswerten auf den Typ.h | l | ll | w | I | I32 | I64
Optionale Präfixe für type, die die Größe des entsprechenden Arguments angeben. Weitere Informationen finden in Größenangabe unter "Größenpräfixe".
![]() |
---|
Stellen Sie sicher, dass die Formatspezifikationszeichenfolgen nicht benutzerdefiniert sind.Beispiel: Ein Programm, das den Benutzer zur Eingabe eines Namens auffordert und die Eingabe in einer Zeichenfolgevariablen namens name speichert.Führen Sie zum Drucken von name nicht diesen Schritt aus: printf( name ); /* Danger! If name contains "%s", program will crash */ Sondern gehen Sie stattdessen so vor: printf( "%s", name ); |
Siehe auch
Referenz
printf, _printf_l, wprintf, _wprintf_l