Informationen zu printf |
---|
#include <stdio.h> int printf(const char *format[, argument, ...]);
Erzeugt formatierte Ausgaben.
Die printf-Funktionen:
Es müssen für das Format genügend Argumente vorhanden sein, da die Ergebnisse andernfalls unbestimmt und möglicherweise katastrophal sind. Parameter, die durch den Format-String nicht erfasst (d.h.überzählig) sind, werden ignoriert.
printf liefert bei fehlerfreier Ausführung die Anzahl der ausgegebenen Bytes, im Falle eines Fehlers EOF zurück.
% [flags] [width] [.prec] [F|N|h|l|L] type_char
Jede Anweisung beginnt mit einem Prozentzeichen (%). Auf dieses Zeichen folgen optionale Bestandteile des Format-Strings.
In der folgenden Tabelle sind die optionalen Bestandteile einer Formatieranweisung und ihre Bedeutung in der erforderlichen Reihenfolge aufgelistet:
Komponente | Optional/Obligatorisch | Gegenstand | Wirkung | |
---|---|---|---|---|
[flags] | (Optional) | Flag-Zeichen | Ausrichtung der Ausgabe, Vorzeichen, Dezimalpunkt, folgende Nullen, oktale und hexadezimale Präfixe | |
[width] | (Optional) | Width specifier | Minimalzahl der ausgegebenen Zeichen, notfalls mit Leerzeichen oder Nullen aufgefüllt | |
[prec] | (Optional) | Präzisionsangabe | Maximalzahl der ausgegebenen Zeichen. Bei Integerwerten die Minimalzahl der ausgegenbenen Ziffern | |
[F|N|h|l|L] | (Optional) | Größenmodifizierer | Verändern der Standardgröße des Arguments: N = near-Zeiger F = far-Zeiger h = short int l = long L = long double |
|
type_char | (Obligatorisch) | Konvertierungstyp-Zeichen (siehe dort) |
Der Format-String ist in jedem printf-Funktionsaufruf vorhanden und kontrolliert, wie die Funktion ihre Argumente konvertiert, formatiert und druckt.
Die Information in dieser Tabelle basiert auf der Annahme, dass in der Formatieranweisungkeine Flag-Zeichen, Breitenangaben, Präzisionsangaben, oder Größenmodifizierer enthalten waren.
Typzeichen | Erwartete Eingabe | Ausgabeformat |
---|---|---|
Numerische Werte | ||
d | Integer | signed int (dezimal) |
i | Integer | signed int (dezimal) |
o | Integer | unsigned int (oktal) |
u | Integer | unsigned int (dezimal) |
x | Integer | unsigned int (hexadezimal), Buchstaben a bis f |
X | Integer | unsigned int (hexadezimal), Buchstaben A bis F |
f | Gleitkomma | vorzeichenbehafteter Wert der Form [-]dddd.dddd. |
e | Gleitkomma | vorzeichenbehafteter Wert der Form [-]d.dddde [+/-]ddd |
g | Gleitkomma | vorzeichenbehafteter Wert im e- oder f-Format. Präzision gibt die Anzahl signifikanter Ziffern an. Abschließende Nullen und Dezimalpunkt werden nur ausgegeben, wenn es nötig ist. |
E | Gleitkomma | dasselbe Format wie e, aber mit dem Zeichen E vor dem Exponenten |
G | Gleitkomma | dasselbe Format wie e, aber mit dem Zeichen E vor dem Exponenten, wenn das Format e verwendet wird. |
Zeichen | ||
c | Zeichen | einzelnes Zeichen |
s | String-Zeiger | Ausgabe bis zu einem Nullzeichen oder dem Erreichen der durch Präzision vorgegebenen Zeichenzahl |
% | (nichts) | Ausgabe des Zeichens % |
Zeiger | ||
n | *int | Speichert an der Position, auf die das Eingabeargument zeigt, die Anzahl der bis jetzt ausgegebenen Zeichen. |
p | Zeiger | Gibt das Eingabeargument als Zeiger in hexadezimaler Form aus (near-Zeiger als YYYY, far -Zeiger als XXXX:YYYY). |
Unendlich große positive oder negative Gleitkommazahlen werden als +INF bzw. als -INF ausgegeben, eine "IEEE-Nichtzahl" als +NAN oder -NAN.