Tools.h++ 7.0 クラスライブラリ・リファレンスマニュアル: RWbistream

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

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 の状態に関する情報が保存されていないので、istream や ifstream などといった 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);

    `streambuf` の `s` から 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` が設定されます。どちらの場合も、文字列はワイドヌル文字で終了します。