B..3 Formatstring für printf(), fprintf, etc.

B..3 Formatstring für printf(), fprintf, etc.

Der Formatstring besteht aus auszugebenden Zeichen und Steuersequenzen.

Jede Steuersequenz beginnt mit einem Prozentzeichen (%) und endet mit der eigentlichen Direktive (d, i, o, etc.):

Direktive: Argument: Ausgabe: Besonderheiten:
%d int Dezimalzahl Genauigkeit= Mindestanzahl Zeichen
%i int Dezimalzahl Genauigkeit= Mindestanzahl Zeichen
%u unsigned int Dezimalzahl Genauigkeit= Mindestanzahl Zeichen
%o unsigned int Oktalzahl Genauigkeit= Mindestanzahl Zeichen
# erzeugt eine führende Null.
%x unsigned int Sedezimalzahl (Basis 16) Ziffern 0-9, a-f
%X unsigned int Sedezimalzahl (Basis 16) Ziffern 0-9, A-F
%e double zum Beispiel
1.234567e-15
Genauigkeit= Anzahl Nachkommastellen
# gibt Dezimalpunkt auch aus, wenn Genauigkeit==0 ist.
%E double zum Beispiel
1.234567E-15
Genauigkeit= Anzahl Nachkommastellen
# gibt Dezimalpunkt auch aus, wenn Genauigkeit==0 ist.
%f double zum Beispiel 1.234567 Genauigkeit= Anzahl Nachkommastellen
%g double wie Format %e oder %f, je nach Zahlenwert Genauigkeit= Anzahl Nachkommastellen
# verhindert das Entfernen von abschließenden Nullen
%G double wie Format %E oder %f, je nach Zahlenwert # verhindert das Entfernen von abschließenden Nullen
%c int ein Zeichen des Zeichensatzes
%s char * Inhalt einer nullterminierten Zeichenkette
%p void * Wert des Zeigers (also eine Adresse)
# bewirkt Voranstellen von 0x
%n int * - An der Stelle im Speicher, auf die das Argument zeigt, wird die Anzahl der bisher mit diesem Funktionsaufruf ausgegebenen Zeichen abgelegt.
%% - Prozentzeichen %

Zwischen dem einleitenden Prozentzeichen und der Direktive darf eine Auswahl folgender Steuerbefehle eingesetzt werden:

Steuerbefehl: Wirkung:
+ positive Zahlen werden mit Vorzeichen ausgegeben
(Leerz.) positive Zahlen werden mit führendem Leerzeichen ausgegeben
0 Es wird auf die Feldbreite nicht mit Leerzeichen, sondern mit Nullen aufgefüllt
- Ausgabe linksbündig in der Feldbreite
# alternative Ausgabe, je nach Direktive
Feldbreite (als Zahl) Mindestzahl der auszugebenden Zeichen (ggf. Auffüllen mit Leerzeichen)
(oder als *) Mindestzahl muß noch vor dem auszugebenden Argument als short int übergeben werden
Genauigkeit (als Punkt . mit nachfolgender Zahl) auszugebende Genauigkeit (max. Länge bei %s)
(oder als .*) Genauigkeit muß noch vor dem auszugebenden Argument als short int übergeben werden
Objektgröße: einer der
Buchstaben:
Speichergröße des auszugebenden Objekts:
h, short int statt int
l, long int statt int
L long double statt double

AnyWare@Wachtler.de
AnyWare@Wachtler.de