バナーをクリックすれば目次に戻ります

Copyright 1999 Rogue Wave Software
Copyright 1999 Sun Microsystems, Inc.


RWbistream

RWvistream RWios RWvios
RWbistream
ios

形式

#include <rw/bstream.h>
RWbistream bstr(cin);        // streambuf を使用して
                             // RWbistream を作成する

説明

クラス RWbistream は、抽象基底クラス RWvistream を特殊化したクラスで、RWbostream がバイナリ形式で格納した変数を復元します。

このクラスはまた、対応する streambuf のバイナリ形式の表現とも考えられます。RWbistream には対応する streambuf の状態に関する情報が保存されていないので、istreamifstream などといった streambuf を使う他のストリームと自由に切り換えて利用できます。

メンバー関数 good()bad()eof() などを使用して、RWbistream にストリームの状態を問い合わせることができます。

持続性

なし

ファイル "data.dat" を作成する方法については、RWbostream の例を参照してください。

#include <rw/bstream.h>
#include <fstream.h>

main(){
  ifstream fstr("data.dat");    // 入力ファイルをオープンする
  RWbistream bstr(fstr);    // 入力ファイルから RWbistream を作成する

  int i;
  float f;
  double d;

  bstr >> i;         // バイナリで格納された int を復元する
  bstr >> f >> d;    // float と double を復元する
}
END FILE

公開コンストラクタ

RWbistream(streambuf* s);

streambufs から RWbistream を作成します。DOS の場合、この streambuf はバイナリモードで開かなければなりません。

RWbistream(istream& str);

istream str に対応した streambuf を使用して RWbistream を作成します。DOS の場合、この streambuf はバイナリモードで開かなければなりません。このためには、ifstream のコンストラクタへの第 2 引数の一部に ios::binary を指定します。上記の例では、ifstream を作成する行を ifstream fstr("data.dat",ios::in | ios::binary); とします。| はビット毎の論理和演算子を意味します。

公開演算子

virtual RWvistream&
operator>>(char& c);

クラス RWvistream から再定義した関数。入力ストリームから次の char を獲得して c に格納します。

virtual RWvistream&
operator>>(wchar_t& wc);

クラス RWvistream から再定義した関数。入力ストリームから次のワイド char を獲得して wc に格納します。

virtual RWvistream&
operator>>(double& d);

クラス RWvistream から再定義した関数。入力ストリームから次の double を獲得して d に格納します。

virtual RWvistream&
operator>>(float& f);

クラス RWvistream から再定義した関数。入力ストリームから次の float を獲得して f に格納します。

virtual RWvistream&
operator>>(int& i);

クラス RWvistream から再定義した関数。入力ストリームから次の int を獲得して i に格納します。

virtual RWvistream&
operator>>(long& l);

クラス RWvistream から再定義した関数。入力ストリームから次の long を獲得して l に格納します。

virtual RWvistream&
operator>>(short& s);

クラス RWvistream から再定義した関数。入力ストリームから次の short を獲得して s に格納します。

virtual RWvistream&
operator>>(unsigned char& c);

クラス RWvistream から再定義した関数。入力ストリームから次の unsigned char を獲得して c に格納します。

virtual RWvistream&
operator>>(unsigned short& s);

クラス RWvistream から再定義した関数。入力ストリームから次の unsigned short を獲得して s に格納します。

virtual RWvistream&
operator>>(unsigned int& i);

クラス RWvistream から再定義した関数。入力ストリームから次の unsigned int を獲得して i に格納します。

virtual RWvistream&
operator>>(unsigned long& l);

クラス RWvistream から再定義した関数。入力ストリームから次の unsigned long を獲得して l に格納します。

operator void*();

RWvios から RWvistream を経由して継承した関数。

公開メンバー関数

virtual int
get();

クラス RWvistream から再定義した関数。入力ストリームから次の char を獲得して返します。ファイルの終わりに達したら、EOF を返します。

virtual RWvistream&
get(char& c);

クラス RWvistream から再定義した関数。次の char を獲得して c に格納します。

virtual RWvistream&
get(wchar_t& wc);

クラス RWvistream から再定義した関数。次のワイド char を獲得して c に格納します。

virtual RWvistream&
get(unsigned char& c);

クラス RWvistream から再定義した関数。次の unsigned char を獲得して c に格納します。

virtual RWvistream&
get(char* v, size_t N);

クラス RWvistream から再定義した関数。char ベクトルを獲得して、v で始まる配列に格納します。ストリームに利用できるデータがもうないか、例外が送出されたか、またはその他の理由で、復元が途中で停止された場合、get 関数は獲得できたところまでを v に格納して failbit を設定します。

virtual RWvistream&
get(wchar_t* v, size_t N);

クラス RWvistream から再定義した関数。ワイド文字のベクトルを獲得して、v で始まる配列に格納します。ストリームに利用できるデータがもうないか、例外が送出されたか、またはその他の理由で、復元が途中で停止された場合、get 関数は獲得できたところまでを v に格納して failbit を設定します。

virtual RWvistream&
get(double* v, size_t N);

クラス RWvistream から再定義した関数。double ベクトルを獲得して、v で始まる配列に格納します。ストリームに利用できるデータがもうないか、例外が送出されたか、またはその他の理由で、復元が途中で停止された場合、get 関数は獲得できたところまでを v に格納して failbit を設定します。

virtual RWvistream&
get(float* v, size_t N);

クラス RWvistream から再定義した関数。float ベクトルを獲得して、v で始まる配列に格納します。ストリームに利用できるデータがもうないか、例外が送出されたか、またはその他の理由で、復元が途中で停止された場合、get 関数は獲得できたところまでを v に格納して failbit を設定します。

virtual RWvistream&
get(int* v, size_t N);

クラス RWvistream から再定義した関数。int ベクトルを獲得し、v で始まる配列に格納します。ストリームに利用できるデータがもうないか、例外が送出されたか、またはその他の理由で、復元が途中で停止された場合、get 関数は獲得できたところまでを v に格納して failbit を設定します。

virtual RWvistream&
get(long* v, size_t N);

クラス RWvistream から再定義した関数。long ベクトルを獲得し、v で始まる配列に格納します。ストリームに利用できるデータがもうないか、例外が送出されたか、またはその他の理由で、復元が途中で停止された場合、get 関数は獲得できたところまでを v に格納して failbit を設定します。

virtual RWvistream&
get(short* v, size_t N);

クラス RWvistream から再定義した関数。short ベクトルを獲得し、v で始まる配列に格納します。ストリームに利用できるデータがもうないか、例外が送出されたか、またはその他の理由で、復元が途中で停止された場合、get 関数は獲得できたところまでを v に格納して failbit を設定します。

virtual RWvistream&
get(unsigned char* v, size_t N);

クラス RWvistream から再定義した関数。unsigned char ベクトルを獲得し、v で始まる配列に格納します。ストリームに利用できるデータがもうないか、例外が送出されたか、またはその他の理由で、復元が途中で停止された場合、get 関数は獲得できたところまでを v に格納して failbit を設定します。

virtual RWvistream&
get(unsigned short* v, size_t N);

クラス RWvistream から再定義した関数。unsigned short 整数ベクトルを獲得し、v で始まる配列に格納します。ストリームに利用できるデータがもうないか、例外が送出されたか、またはその他の理由で、復元が途中で停止された場合、get 関数は獲得できたところまでを v に格納して failbit を設定します。

virtual RWvistream&
get(unsigned int* v, size_t N);

クラス RWvistream から再定義した関数。unsigned int ベクトルを獲得し、v で始まる配列に格納します。ストリームに利用できるデータがもうないか、例外が送出されたか、またはその他の理由で、復元が途中で停止された場合、get 関数は獲得できたところまでを v に格納して failbit を設定します。

virtual RWvistream&
get(unsigned long* v, size_t N);

クラス RWvistream から再定義した関数。unsigned long ベクトルを獲得し、v で始まる配列に格納します。ストリームに利用できるデータがもうないか、例外が送出されたか、またはその他の理由で、復元が途中で停止された場合、get 関数は獲得できたところまでを v に格納して failbit を設定します。

virtual RWvistream&
getString(char* s, size_t N);

クラス RWvistream から再定義した関数。入力ストリームから文字列を復元し、s で始まる配列に格納します。文字列の終わりに達するか、または N-1 文字を読み取ると (どちらか早い方で) 実行を終了します。N-1 文字を読み取り、そして N 番目の文字が文字列終了文字でない場合、ストリームの failbit が設定されます。どちらの場合も、文字列はヌル文字で終了します。

virtual RWvistream&
getString(wchar_t* ws, size_t N);

クラス RWvistream から再定義した関数。入力ストリームからワイド文字列を復元し、ws で始まる配列に格納します。文字列の終わりに達するか、または N - 1 文字を読み取ると (どちらか早い方で) 実行を終了します。N-1 文字を読み取り、そして N 番目の文字が文字列終了文字でない場合、ストリームの failbit が設定されます。どちらの場合も、文字列はワイドヌル文字で終了します。