Atari Logo
Atari Computer

Hauptseite -
Welches System? -
Hardware -
Software -
Emulatoren -
Internet
MausNet
Programmieren
Verweise
Über

C

Home stdio.h stdio.h Ein-/Ausgabe in cookie.c

13.1.1 Formatstring

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:

-
Die Variable wird linksbündig ausgegeben, sind Leerzeichen für die gewünschte Breite nötig, werden sie rechts eingefügt. Ohne dieses Flag arbeitet printf immer rechtsbündig.
 
+
Eine numerische Ausgabe wird mit einem Vorzeichen gemacht. Ohne dieses Flag werden nur negative Werte mit einem Vorzeichen versehen.
 
' '
Positive Werte werden mit einem führenden Leerzeichen ausgegeben. Ohne dieses Flag stellt printf positiven Werten überhaupt nichts voran.
 
#
Die Konvertierung des Arguments erfolgt in alternativer Form. Die Tabelle gibt an für welche Typen welche Wirkungen eintritt:
 
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.

Home stdio.h stdio.h Ein-/Ausgabe in cookie.c


Best viewed with any browser English version not yet available.

Änderungen und Irrtümer vorbehalten. Letzte Änderung:
14 September 2001.
Home - Mail an den Webmaster - Impressum