OOStuBS/MPStuBS
o_stream.h-Dateireferenz

Hier ist die Klasse O_Stream implementiert. Neben der Klasse O_Stream sind hier auch die Manipulatoren hex , dec , oct und bin für die Wahl der Basis bei der Zahlendarstellung, sowie endl für den Zeilenumbruch deklariert. Mehr ...

#include "strbuf.h"
Include-Abhängigkeitsdiagramm für o_stream.h:
Dieser Graph zeigt, welche Datei direkt oder indirekt diese Datei enthält:

Klassen

class  O_Stream
 Die Aufgaben der Klasse O_Stream entsprechen im Wesentlichen denen der Klasse ostream der bekannten C++ IO-Streams-Bibliothek. Mehr ...
 

Funktionen

O_Streamflush (O_Stream &os)
 Löst explizit ein Leeren (Flush) des Puffers aus. Mehr ...
 
O_Streamendl (O_Stream &os)
 Fügt einen Zeilenumbruch in die Ausgabe ein und löst ein Leeren (Flush) des Puffers aus. Mehr ...
 
O_Streambin (O_Stream &os)
 Wählt das binäre Zahlensystem aus. Mehr ...
 
O_Streamoct (O_Stream &os)
 Wählt das oktale Zahlensystem aus. Mehr ...
 
O_Streamdec (O_Stream &os)
 Wählt das dezimale Zahlensystem aus. Mehr ...
 
O_Streamhex (O_Stream &os)
 Wählt das hexadezimale Zahlensystem aus. Mehr ...
 

Ausführliche Beschreibung

Hier ist die Klasse O_Stream implementiert. Neben der Klasse O_Stream sind hier auch die Manipulatoren hex , dec , oct und bin für die Wahl der Basis bei der Zahlendarstellung, sowie endl für den Zeilenumbruch deklariert.

Manipulatoren
Um bei der Textformatierung mit Hilfe der Klasse O_Stream das Zahlensystem bequem wählen und Zeilenumbrüche einfügen zu können, sollen sogenannte Manipulatoren definiert werden. Der Ausdruck kout << "a = " << dec << a << " ist hexadezimal " << hex << a << endl; soll dann beispielsweise den Wert der Variablen a erst in dezimaler und dann in hexadezimaler Schreibweise formatieren und zum Schluss einen Zeilenumbruch anfügen.

Die gewünschten Eigenschaften können realisiert werden, wenn hex, dec, oct, bin und endl als Funktionen (d.h. nicht als Methoden der Klasse O_Stream) definiert werden, die als Parameter und Rückgabewert jeweils eine Referenz auf ein O_Stream Objekt erhalten bzw. liefern. Durch diese Signatur wird bei dem genannten Ausdruck der bereits erwähnte Operator O_Stream& O_Stream::operator<< ((fkt) (O_Stream&)) ausgewählt, der dann nur noch die als Parameter angegebene Funktion ausführen muss.

Anmerkung
Der Manipulatorbegriff wurde dem Buch The C++ Programming Language von Bjarne Stroustrup entnommen. Dort finden sich auch weitergehende Erläuterungen dazu.

Dokumentation der Funktionen

◆ bin()

O_Stream& bin ( O_Stream os)

Wählt das binäre Zahlensystem aus.

Parameter
osZu modifizierender Stream
Rückgabe
Referenz auf ein O_Stream Objekt, um Operatoren konkatenieren zu können.

◆ dec()

O_Stream& dec ( O_Stream os)

Wählt das dezimale Zahlensystem aus.

Parameter
osZu modifizierender Stream
Rückgabe
Referenz auf ein O_Stream Objekt, um Operatoren konkatenieren zu können.

◆ endl()

O_Stream& endl ( O_Stream os)

Fügt einen Zeilenumbruch in die Ausgabe ein und löst ein Leeren (Flush) des Puffers aus.

Parameter
osZu modifizierender Stream
Rückgabe
Referenz auf ein O_Stream Objekt, um Operatoren konkatenieren zu können.

◆ flush()

O_Stream& flush ( O_Stream os)

Löst explizit ein Leeren (Flush) des Puffers aus.

Parameter
osZu modifizierender Stream
Rückgabe
Referenz auf ein O_Stream Objekt, um Operatoren konkatenieren zu können.

◆ hex()

O_Stream& hex ( O_Stream os)

Wählt das hexadezimale Zahlensystem aus.

Parameter
osZu modifizierender Stream
Rückgabe
Referenz auf ein O_Stream Objekt, um Operatoren konkatenieren zu können.

◆ oct()

O_Stream& oct ( O_Stream os)

Wählt das oktale Zahlensystem aus.

Parameter
osZu modifizierender Stream
Rückgabe
Referenz auf ein O_Stream Objekt, um Operatoren konkatenieren zu können.