|
Hauptseite - Welches System? - Hardware - Software - Emulatoren - |
Internet MausNet Programmieren Verweise Über |
Der Formatstring enthält einen Text, der ausgegeben ausgegeben bzw. genau so in der Eingabe vorhanden sein muß. In diesem Text können Platzhalter angegeben werden, an deren Stelle Variablen ausgegeben bzw. eingelesen werden. Jeder dieser Platzhalter beginnt mit dem Zeichen '%' und endet mit einem Zeichen, das den Datentyp kodiert. Zwischen dem Prozentzeichen und dem Typ können noch folgnde Angaben stehen: Flags, die das Ausgabeformat genauer spezifizieren, eienr Ausgabebreite, einer Genauigkeit und einem Flag h oder l für eine Größenangabe. Für jeden Platzhalter muß in der variablen Parameterliste auch eine entsprechende Variable folgen!
Hier noch einmal die Kurzzusammenfassung eines Platzhalters:
% [Flags] [Breite] [.Präzision] [h|l|L] Typ
Als Flags sind folgende Zeichen möglich: Minus '-', Plus '+', Doppelkreuz '#' und Leerzeichen ' '. Die Flags können in beliebiger Folge und Kombination erscheinen und haben die folgenden Bedeutung:
c,s,d,i,u | (keine) |
o | Voranstellen von '0' |
x,X | Voranstellen von "0x" bzw. "0X" |
e,E,f | es wird immer ein Dezimalpunkt ausgegeben |
g,G | wie e bzw. E und folgende Nullen werden nicht unterdrückt |
Die Breite legt die minimale Zahl auszugebender Zeichen fest. Sie kann in zwei Formen erfolgen, entweder direkt als Zahl innerhalb des Formatstrings oder über ein Sternchen '*'. Bei der Verwendung von '*' erwartet printf einen zusätzlichen Parameter, der in der Liste direkt vor dem auszugebenden Wert stehen und den Typ int haben muß. Der Breite als Zahlkonstante kann die Ziffer 0 vorangestellt werden, dann wird mit der Ziffer '0' und nicht mit Lerzeichen aufgefüllt. Erzeugt die Ausgabe weniger Zeichen als die Breite angibt, wird mit Leerzeichen aufgefüllt. Erzeugt die Ausgabe mehr Zeichen, wird die Breite ignoriert. Es werden keine Zeichen abgeschnitten.
Die Präzision wird immer mit einem Dezimalpunkt '.' eingeleitet und gibt die maximale Anzahl Zeichen an, die ausgegeben werden soll. Auch hier kann anstelle der Konstanten der Stern '*' angegeben werden, wenn die Angabe über einen zusätzlichen Parameter erfolgt.
Die Buchstaben 'h', 'l' oder 'L' geben an, ob es sich bei dem Parameter umn einen short, log oder long double handelt.
Der Typ kann einen der folgenden Werte annehmen:
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..f; |
X | Integer | unsigned int (hexadezimal), Buchstaben A..F. |
f | Fließkomma | vorzeichenbehafteter Wert der Form [-]dddd.dddd |
e | Fließkomma | vorzeichenbehafteter Wert der Form [-]d.dddd e [+|-]ddd |
g | Fließkomma | vorzeichenbehafteter Wert im e- oder f-Format |
E | Fließkomma | wie e, aber mit dem Zeichen E vor dem Exponenten |
G | Fließkomma | wie g, aber mit dem Zeichen E vor dem Exponenten |
c | Zeichen | einzelnes Zeichen |
s | String | Nullterminierte Zeichenkette |
% | (nichts) | Ausgabe des Zeichens % |
n | *int | speichert die Anzahl der bis jetzt ausgegebenen Zeichen |
p | Zeiger | gibt den Parameter als Zeiger in hexadezimaler Form aus. |
English version not yet available. |