next up previous contents
Next: Dateien (Files) Up: Ein- und Ausgabe Previous: Elementfunktionen der iostreams

Formatierung

Oft ist es nötig das Format der Ausgabe zu ändern, um z.B. eine schönere, besser lesbare Tabelle zu erhalten, oder um die volle Genauigkeit einer Variablen auf dem Bildschirm auszugeben. Solche Operationen geschehen mit Hilfe der in Tabelle [*] zusammengefaßten Funktionen.

Tabelle: Beispiele von Formatierungsfunktionen für die Ausgabe.
Manipulator Beschreibung
int width=12;  
cout << setw(width); setzt die minimale Größe der direkt folgenden Ausgabe.
int prec=5;  
cout << setprecision(prec); Gibt die Zahl der Stellen für Festkomma-, oder die Zahl der Stellen hinter dem Komma für Gleitkommadarstellung an; sonst die Maximalzahl der Stellen.
char c='*';  
cout << setfill(c); Definiert ein Füllzeichen wie z.B. *.


Dabei ist zu beachten, daß die Änderung, die durch solche Funktionen herbeigeführt wird, evtl. nur für die nächste Ausgabe gültig ist. Um diese Funktionen verwenden zu können, muß man zuerst #include<iomanip> aufrufen.

#include<iomanip>
   double x=1234.5;
   cout << x << '\n';   // Ergibt: 1234.5
   cout << setfill ('*') << setw (10) << setprecision (5);
   cout << x << '\n';   // Ergibt: ****1234.5
   cout << x << '\n';   // Ergibt wieder: 1234.5

Weiterhin gibt es sog. Flags zum Schalten von Formatfunktionen. Dies sind Operationen, die keinen Parameter brauchen. Beispiele sind in Tabelle [*] gezeigt.

Tabelle: Schalter für formatierte Ausgabe.
Flag Gruppe Funktion
left adjustfield links ausrichten
right adjustfield rechts ausrichten
internal adjustfield +/- links, Zahl rechts
dec basefield Dezimalzahlen
hex basefield Hexadezimalzahlen
oct basefield Oktalzahlen
showbase   zeigt Dezimalbasis von hex- und oct-Zahlen
showpos   '+' vor Zahl, wenn positiv
uppercase   E, X, A-F statt e, x, a-f
fixed floatfield Festkommazahl
scientific floatfield wissenschaftliche Darstellung


Will man ein Flag setzen, d.h. einen Ausgabemodus aktivieren, so verwendet man alternativ:

   cout.setf (ios:: 'flag', ios:: 'group')
   cout << setiosflags (ios:: 'flag', ios:: 'group')
wobei die Möglichkeiten für 'flag' und 'group' Tabelle [*] zu entnehmen sind. Der zweite Übergabeparameter ist nicht unbedingt notwendig. Will man die Funktionalität rückgängig machen, bzw. die Voreinstellung wiederherstellen, so kann man dies (wieder alternativ) für jedes einzelne Flag, oder auch für eine ganze Gruppe tun.
   cout.unsetf (ios:: 'flag')
   cout << resetiosflags (ios:: 'flag')
   
   cout.unsetf (ios:: 'group')
   cout << resetiosflags (ios:: 'group')


next up previous contents
Next: Dateien (Files) Up: Ein- und Ausgabe Previous: Elementfunktionen der iostreams
© R.Hilfer et al., ICA-1, Univ. Stuttgart
28.6.2002