バナーをクリックすれば目次に戻ります
Copyright 1999 Rogue Wave Software
Copyright 1999 Sun Microsystems, Inc.
RWvistream
RWvistream RWvios
#include <rw/vstream.h>
RWvistream や RWvostream のインタフェースは書式に依存しないので、これらのクラスを使用するユーザーは、変数が実際にはどのように格納あるいは復元されるかを知る必要がありません。これを決定するのは派生クラスの責任です。決定は、オペレーティングシステムに依存しない ASCII 形式 (クラス RWpistream と RWpostream) かバイナリ形式 (クラス RWbistream と RWbostream) を使用して行われます。あるいは、ユーザーが独自の書式を定義することも可能です (たとえば、ネットワークへのインタフェース)。注意すべきことは、RWvistream は抽象基底クラスであるので、実際に目標を達成するための方法は存在しないということです。つまり、ここで説明することは、RWvistream と RWvostream から派生したクラスはどのように動作するものなのかを示すモデルにすぎないのです。
書式に依存しないストリームの格納の詳細と例については、クラス RWvostream を参照してください。
#include <rw/vstream.h> void restoreStuff( RWvistream& str) { int i; double d; char string[80]; str >> i; // int を復元する str >> d; // double を復元する // 80 文字までの文字列を復元する str.getString(string, sizeof(string)); if(str.fail()) cerr << "Oh, oh, bad news.\n"; } |
virtual ~RWvistream();
virtual RWvistream& operator>>(char& c) = 0;
virtual RWvistream& operator>>(wchar_t& wc) = 0;
virtual RWvistream& operator>>(double& d) = 0;
virtual RWvistream& operator>>(float& f) = 0;
virtual RWvistream& operator>>(int& i) = 0;
virtual RWvistream& operator>>(long& l) = 0;
virtual RWvistream& operator>>(short& s) = 0;
virtual RWvistream& operator>>(unsigned char& c) = 0;
virtual RWvistream& operator>>(unsigned short& s) = 0;
virtual RWvistream& operator>>(unsigned int& i) = 0;
virtual RWvistream& operator>>(unsigned long& l) = 0;
operator void*();
virtual int get() = 0;
virtual RWvistream& get(char& c) = 0;
virtual RWvistream& get(wchar_t& wc) = 0;
virtual RWvistream& get(unsigned char& c) = 0;
virtual RWvistream& get(char* v, size_t N) = 0;
virtual RWvistream& get(wchar_t* v, size_t N) = 0;
virtual RWvistream& get(double* v, size_t N) = 0;
virtual RWvistream& get(float* v, size_t N) = 0;
virtual RWvistream& get(int* v, size_t N) = 0;
virtual RWvistream& get(long* v, size_t N) = 0;
virtual RWvistream& get(short* v, size_t N) = 0;
virtual RWvistream& get(unsigned char* v, size_t N) = 0;
virtual RWvistream& get(unsigned short* v, size_t N) = 0;
virtual RWvistream& get(unsigned int* v, size_t N) = 0;
virtual RWvistream& get(unsigned long* v, size_t N) = 0;
virtual RWvistream& getString(char* s, size_t N) = 0;
virtual RWvistream& getString(wchar_t* ws, size_t N) = 0;