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

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


RWbostream

RWvostream RWios RWvios
RWbostream
ios

形式

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

説明

クラス RWbostream は抽象基底クラス RWvostream を特殊化したクラスで、バイナリ形式で変数を格納します。結果は、対応する RWbistream を使用して復元することができます。

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

変数は空白で区切ってはなりません。空白を入れるとそのまま解釈され、文字列として復元されることになります。

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

持続性

なし

#include <rw/bstream.h>
#include <fstream.h>
main()
{
  ofstream fstr("data.dat");    // 出力ファイルをオープンする
  RWbostream bstr(fstr);        // 出力ファイルから RWbostream を作成する
  int i = 5;
  float f = 22.1;
  double d = -0.05;

  bstr << i;                    // バイナリ形式で int を格納する
  bstr << f << d;               // float と double を格納する

ファイル "data.dat" を読み取る方法については RWbistream の例を参照してください。

公開コンストラクタ

RWbostream(streambuf* s);

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

RWbostream(ostream& str);

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

公開デストラクタ

virtual ~RWvostream();

この仮想デストラクタを使用すると、特殊化したクラスが、割り当てた資源を解放することができます。

公開メンバー演算子

virtual RWvostream&
operator<<(const char* s);

クラス RWvostream から再定義した関数。s で始まる文字列をバイナリ形式で出力ストリームに格納します。文字列は、ヌル文字で終わるものとみなされます。

virtual RWvostream&
operator<<(const wchar_t* ws);

クラス RWvostream から再定義した関数。ws で始まるワイド文字列をバイナリ形式で出力ストリームに格納します。ワイド文字列は、ワイドヌル文字で終わるものとみなされます。

virtual RWvostream&
operator<<(char c);

クラス RWvostream から再定義した関数。char c をバイナリ形式で出力ストリームに格納します。

virtual RWvostream&
operator<<(wchar_t wc);

クラス RWvostream から再定義した関数。ワイド char wc をバイナリ形式で出力ストリームに格納します。

virtual RWvostream&
operator<<(unsigned char c);

クラス RWvostream から再定義した関数。unsigned char c をバイナリ形式で出力ストリームに格納します。

virtual RWvostream&
operator<<(double d);

クラス RWvostream から再定義した関数。double d をバイナリ形式で出力ストリームに格納します。

virtual RWvostream&
operator<<(float f);

クラス RWvostream から再定義した関数。float f をバイナリ形式で出力ストリームに格納します。

virtual RWvostream&
operator<<(int i);

クラス RWvostream から再定義した関数。ini i をバイナリ形式で出力ストリームに格納します。

virtual RWvostream&
operator<<(unsigned int i);

クラス RWvostream から再定義した関数。unsigned int i をバイナリ形式で出力ストリームに格納します。

virtual RWvostream&
operator<<(unsigned long l);

クラス RWvostream から再定義した関数。long l をバイナリ形式で出力ストリームに格納します。

virtual RWvostream&
operator<<(unsigned long l);

クラス RWvostream から再定義した関数。 unsigned long l をバイナリ形式で出力ストリームに格納します。

virtual RWvostream&
operator<<(short s);

クラス RWvostream から再定義した関数。short s をバイナリ形式で出力ストリームに格納します。

virtual RWvostream&
operator<<(unsigned short s);

クラス RWvostream から再定義した関数。unsigned short s をバイナリ形式で出力ストリームに格納します。

operator void*();

RWvios から RWvostream 経由で継承した関数。

公開メンバー関数

virtual RWvostream&
flush();

ストリームバッファの内容をただちに出力へ送ります。

virtual RWvostream&
put(char c);

クラス RWvostream から再定義した関数。char c を出力ストリームに格納します。

virtual RWvostream&
put(wchar_t wc);

クラス RWvostream から再定義した関数。ワイド char wc を出力ストリームに格納します。

virtual RWvostream&
put(unsigned char c);

クラス RWvostream から再定義した関数。unsigned char c を出力ストリームに格納します。

virtual RWvostream&
put(const char* p, size_t N);

クラス RWvostream から再定義した関数。p で始まる char ベクトルをバイナリ形式で出力ストリームに格納します。

virtual RWvostream&
put(const wchar_t* p, size_t N);

クラス RWvostream から再定義した関数。p で始まるワイド char ベクトルをバイナリ形式で出力ストリームに格納します。

virtual RWvostream&
put(const unsigned char* p, size_t N);

クラス RWvostream から再定義した関数。p で始まる unsigned char ベクトルをバイナリ形式で出力ストリームに格納します。

virtual RWvostream&
put(const short* p, size_t N);

クラス RWvostream から再定義した関数。p で始まる short ベクトルをバイナリ形式で出力ストリームに格納します。

virtual RWvostream&
put(const unsigned short* p, size_t N);

クラス RWvostream から再定義した関数。p で始まる unsigned short ベクトルをバイナリ形式で出力ストリームに格納します。

virtual RWvostream&
put(const int* p, size_t N);

クラス RWvostream から再定義した関数。p で始まる int ベクトルをバイナリ形式で出力ストリームに格納します。

virtual RWvostream&
put(const unsigned int* p, size_t N);

クラス RWvostream から再定義した関数。p で始まる unsigned int ベクトルをバイナリ形式で出力ストリームに格納します。

virtual RWvostream&
put(const long* p, size_t N);

クラス RWvostream から再定義した関数。p で始まる long ベクトルをバイナリ形式で出力ストリームに格納します。

virtual RWvostream&
put(const unsigned long* p, size_t N);

クラス RWvostream から再定義した関数。p で始まる unsigned long ベクトルをバイナリ形式で出力ストリームに格納します。

virtual RWvostream&
put(const float* p, size_t N);

クラス RWvostream から再定義した関数。p で始まる float ベクトルをバイナリ形式で出力ストリームに格納します。

virtual RWvostream&
put(const double* p, size_t N);

クラス RWvostream から再定義した関数。p で始まる double ベクトルをバイナリ形式で出力ストリームに格納します。

virtual RWvostream&
putString(const char* p, size_t N);

クラス RWvostream から再定義した関数。データは N 字を含む文字列としてフォーマットされます。

virtual RWvostream&
putString(const char*s, size_t N);

文字列中のヌル文字を含む、s で始まる文字列を出力文字列に格納します。