📄 o_stream.h.svn-base
字号:
/*****************************************************************************//* Betriebssysteme *//*---------------------------------------------------------------------------*//* *//* O _ S T R E A M *//* *//*---------------------------------------------------------------------------*//* Die Klasse O_Stream enthaelt die Definition des << Operators fuer die *//* wichtigsten der vordefinierten Datentypen und realisiert somit die *//* bekannte Ausgabefunktion der C++ iO_Stream Bibliothek. Zur Zeit wird die *//* Darstellung von Zeichen, Zeichenketten und ganzen Zahlen unterstuetzt. *//* Ein weiterer << Operator erlaubt die Verwendung von Manipulatoren. *//* *//* Neben der Klasse O_Stream sind hier auch die Manipulatoren hex, dec, oct *//* und bin fuer die Wahl der Basis bei der Zahlendarstellung, sowie endl *//* fuer den Zeilenumbruch definiert. *//*****************************************************************************/#ifndef __o_stream_include__#define __o_stream_include__#include "object/strbuf.h"class O_Stream : public Stringbuffer{public: struct special_char { static const unsigned char line_terminator; }; O_Stream(); O_Stream(O_Stream &ostr); virtual ~O_Stream(); O_Stream& operator<< (unsigned char c); O_Stream& operator<< (char c); O_Stream& operator<< (unsigned short number); O_Stream& operator<< (short number); O_Stream& operator<< (unsigned int number); O_Stream& operator<< (int number); O_Stream& operator<< (unsigned long number); O_Stream& operator<< (long number); O_Stream& operator<< (void* pointer); O_Stream& operator<< (char* text); O_Stream& operator<< (O_Stream& (*fkt) (O_Stream&)); void setBase(unsigned int base); virtual void flush() = 0;protected: char itoa(unsigned int value) const; unsigned long abs(long value); unsigned int m_base;};/*---------------------------------------------------------------------------*//* *//* M A N I P U L A T O R E N *//* *//*---------------------------------------------------------------------------*//* Die folgenden Funktionen erhalten und liefern jeweils eine Referenz auf *//* ein O_Stream Objekt. Da die Klasse O_Stream einen Operator << fuer *//* derartige Funktionen definiert, koennen sie mit Hilfe dieses Operators *//* aufgerufen und sogar in weitere Eingaben eingebettet werden. *//* Aufgabe der Manipulatoren ist, die Darstellung der nachfolgenden Ausgaben *//* zu beeinflussen, z.B durch die Wahl des Zahlensystems. *//*---------------------------------------------------------------------------*/// ENDL: fuegt einen Zeilenumbruch in die Ausgabe ein.O_Stream& endl (O_Stream& os);// BIN: waehlt das binaere Zahlensystem aus.O_Stream& bin (O_Stream& os);// OCT: waehlt das oktale Zahlensystem aus.O_Stream& oct (O_Stream& os);// DEC: waehlt das dezimale Zahlensystem aus.O_Stream& dec (O_Stream& os);// HEX: waehlt das hexadezimale Zahlensystem aus.O_Stream& hex (O_Stream& os);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -