Erläuterung der Format-Flags: Zahlensystem (2/6)

Da der Einsatz der Befehle der vorherigen Seite nicht unbedingt selbsterklärend sein dürften, wollen wir etwas genauer und anhand von Beispielen auf die Funktion setf() eingehen.

Die Umschaltung auf oktale Ausgabe ganzzahliger Werte erfolgt z.B. über die Anweisung:

  cout.setf(ios::oct, ios::basefield);

Erläuterung:
Die Elementfunktion setf(long,long) setzt zunächst das Format-Bitfeld -- in unserem Beispiel ios::basefield -- auf 0, d.h. alle Flags(Bits) dieses Bitfeldes sind deaktiviert. Anschließend wird das im ersten Argument  -- hier: ios::oct -- angegebende Bitfeld gesetzt.

Neben dem Setzen des Flags an sich hat diese Funktion aber noch eine weitere Eigenschaft, die nicht unerwähnt bleiben sollte. setf() besitzt als Rückgabewert einen long-Integerwert, der dem vorherige Zustand entspricht. Damit kann der alte Zustand gespeichert werden und man besitzt eine einfache Möglichkeit, den alten Zustand der gesetzten Flags wiederherzustellen. Hierzu muß lediglich der Wert des alten Zustandes als erstes Argument in einem Aufruf von setf(long, long) angegeben werden.

Auf der folgenden Seite wird dies anhand eines kurzen Codesegmentes erläutert.