Ausgabe mit printf()
← Ein- und Ausgabe | ● | Eingabe mit scanf →
Die Ausgabe von Zeichenketten auf der Konsole erfolgt mit der Funktion printf()
:
int printf(char *format, ...);
Der Format-String entspricht der Zeichenkette, die ausgegeben wird. In der Zeichenkette dĂĽrfen sogenannte Umwandlungen vorkommen. Sie sind Platzhalter fĂĽr zusätzliche Parameter. Umwandlungen beginnen mit einem Prozentzeichen ‘%’. Nach dem Prozentzeichen wird die Art der Umwandlung des Parameters genauer bestimmt.
Der RĂĽckgabewert der Funktion printf()
ist die Anzahl der ausgegebenen Zeichen.
Die Umwandlungen im Format-string haben die vorgeschriebene Form:
Dabei haben die Zeichen FWGLU die folgende Bedeutung:
Zeichen | Bezeichnung | Bedeutung | mögliche Werte |
---|---|---|---|
F | Formatierunsgzeichen | Formatierungsoptionen der Ausgabe | -, +, Leerzeichen, 0 |
W | Weite | Mindestzahl der auszugebenden Zeichen (aufgefĂĽllt von links mit Leerzeichen) | n * |
G | Genauigkeit | Genauigkeit bzw. Breite der Ausgabe | .n .* |
L | Längenangabe | Länge des umzuwandelnden Arguments | hh, h, l, L, ll |
U | Umwandlungszeichen | Art der Umwandlung | d,i,u o x,X f,g c,s |
Das Umwandlungszeichen ist obligatorisch, die anderen Formatzeichen können optional benutzt werden, solange die Reihenfolge eingehalten wird.
Formatierungszeichen F:
- - : linksbĂĽndig
- + : Ausgabe des Vorzeichens ‘+’ oder ‘-‘
- 0 : AuffĂĽllen der Weite mit fĂĽhrenden Nullen
Weite W:
- n : Angabe der Breite als Ganzzahl
- * : Angabe der Breite als zusätzlicher ganzzahliger Parameter
Genauigkeit G:
- .n : Angabe der Genauigkeit als Ganzzahl
- .* : Angabe der Genauigkeit als zusätzlicher ganzzahliger Parameter
Die Auswirkung der Genauigkeit hängt vom Umwandlungszeichen ab:
- d,i,u, o,x,X : Mindestzahl von auszugebenden Zeichen
- f,F : Zahl der Auszugebenden Nachkommastellen
- g,G : maximale Zahl der auszugebenden Stellen
- s : maximale Zahl der auszugebenden Zeichen
Längenangabe L (Ausschnitt):
- h : zum Umwandlungszeichen passendes Argument ist vom Typ short int
- hh : zum Umwandlungszeichen passendes Argument ist vom Typ char
- l : zum Umwandlungszeichen passendes Argument ist vom Typ long int
- ll : zum Umwandlungszeichen passendes Argument ist vom Typ long long int
- L : zum Umwandlungszeichen passendes Argument ist vom Typ long double
Umwandlungszeichen U (Ausschnitt):
- d,i : Wert des passenden Arguments wird als vorzeichenbehaftete ganze Dezimalzahl ausgegeben
- u : Wert des passenden Arguments wird als vorzeichenlose ganze Dezimalzahl ausgegeben
- o : Wert des passenden Arguments wird als vorzeichenlose ganze Oktalzahl ausgegeben
- x,X : Wert des passenden Arguments wird als vorzeichenlose ganze Hexadezimalzahl ausgegeben (X upper-case hex-digits)
- f,F : Wert des passenden Arguments wird als Fliesskommazahl mit 6 Nachkommastellen (double) ausgegeben (F upper-case exponent)
- e,E : Wert des passenden Arguments wird als Fliesskommazahl in Exponentendarstellung ausgegeben (E upper-case exponent)
- g,G : Wert des passenden Arguments wird als Fliesskommazahl mit maximal 6 wertigen Stellen ausgegeben (ganze Zahlen ohne Dezimalpunkt)
- c : Wert des passenden Arguments wird als ASCII Code interpretiert und als Zeichen ausgegeben
- s : Wert des passenden Arguments wird als Zeiger auf eine Zeichenkette interpretiert und als Zeichenkette ausgegeben
- n : Wert des passenden Arguments wird als Zeiger auf eine Variable interpretiert und die aktuelle Spalte der Ausgabe darin abgespeichert
Beispiele:
100, 255, 65535);
printf("double=%10.3f value=%g\n", 666.6, 2.0);
printf("char=%c string=%-100s\n", '0', "string");
Fallgrube: Weniger Argumente als %-Angaben fĂĽhren zu undefiniertem Verhalten.
Tipp: Lange Zeichenketten lassen sich mehrzeilig schreiben.
"concatenated\n");
← Ein- und Ausgabe | ● | Eingabe mit scanf →