Informationen zu printf

Syntax

 #include <stdio.h>
 int printf(const char *format[, argument, ...]);

Beschreibung

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.

Rückgabewert

printf liefert bei fehlerfreier Ausführung die Anzahl der ausgegebenen Bytes, im Falle eines Fehlers EOF zurück.


printf Formatieranweisungen

Die Formatieranweisungen für printf haben die folgende Syntax:
 % [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)  


printf Format-String

Der Format-String ist in jedem printf-Funktionsaufruf vorhanden und kontrolliert, wie die Funktion ihre Argumente konvertiert, formatiert und druckt.

Hinweis:
Für das Format müssen ausreichend viele Argumente vorliegen. Andernfalls kann man unvorhersagbare und eventuell auch chaotische Ergebnisse erhalten. Überflüssige Argumente (mehr als die für das Format erforderliche Zahl) werden ignoriert.
Der Format-String ist ein nullterminierter String, der zwei Arten von Informationen enthält:

printf Typ-Konvertierungszeichen

Die Information in dieser Tabelle basiert auf der Annahme, dass in der Formatieranweisungkeine Flag-Zeichen, Breitenangaben, Präzisionsangaben, oder Größenmodifizierer enthalten waren.

Hinweis:
Bestimmte Konventionen begleiten einige dieser Formatieranweisungen.
TypzeichenErwartete EingabeAusgabeformat
Numerische Werte
dIntegersigned int (dezimal)
iIntegersigned int (dezimal)
oIntegerunsigned int (oktal)
uIntegerunsigned int (dezimal)
xIntegerunsigned int (hexadezimal), Buchstaben a bis f
XIntegerunsigned int (hexadezimal), Buchstaben A bis F
fGleitkommavorzeichenbehafteter Wert der Form [-]dddd.dddd.
eGleitkommavorzeichenbehafteter Wert der Form [-]d.dddde [+/-]ddd
gGleitkommavorzeichenbehafteter 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.
EGleitkommadasselbe Format wie e, aber mit dem Zeichen E vor dem Exponenten
GGleitkommadasselbe Format wie e, aber mit dem Zeichen E vor dem Exponenten, wenn das Format e verwendet wird.
Zeichen
cZeicheneinzelnes Zeichen
sString-ZeigerAusgabe bis zu einem Nullzeichen oder dem Erreichen der durch Präzision vorgegebenen Zeichenzahl
%(nichts)Ausgabe des Zeichens %
Zeiger
n*intSpeichert an der Position, auf die das Eingabeargument zeigt, die Anzahl der bis jetzt ausgegebenen Zeichen.
pZeigerGibt 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.