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

Beispiel

  int wert=2044;
  long alte_basis;

  cout.setf(ios::oct, ios::basefield);
  cout << "Der Wert betraegt: " << wert << endl;    // Ausgabe in octal

  // alte Zahlenbasis speichern und Umschalten auf hexadezimale Darstellung
  alte_basis= cout.setf( ios::hex, ios::basefield);
  cout << "Der Wert betraegt: " << wert << endl;    // Ausgabe in hexadezimal

  // alte Einstellugen wiederherstellen
  cout.setf(alte_basis, ios::basefield);
  cout << "Der Wert betraegt: " << wert << endl;    // Ausgabe in octal

Man könnte sich nun die Frage stellen, wieso wir im obigen Beispiel für das Umschalten in den Hexadezimal-Modus nicht einfach den Befehl setf(long), also

  cout.setf(ios::hex);

verwendet haben. Der Grund hierfür ist der folgende: bei dieser Instanz der setf()-Funktion mit nur einem Parameter wird der alte Zustand nicht aufgehoben!