ストリーム入出力用クラスライブラリに対応するヘッダファイルは以下の通りです。
入出力用書式設定、入出力状態管理を行うデータメンバおよび関数メンバを定義します。
iosクラスの他に、Initクラス、ios_baseクラスを定義します。
ストリームバッファに対する関数を定義します。
入力ストリームからの入力関数を定義します。
出力ストリームへの出力関数を定義します。
入出力関数を定義します。
引数を持つマニピュレータを定義します。
これらのクラスの派生関係は次のようになります。矢印は、派生クラスから基底クラスを参照していることを示します。なお、streambufクラスには派生関係はありません。
ストリーム入出力用クラスライブラリで共通に使用される型名を示します。
|
|
|
型
|
streamoff
|
long型で定義された型です。
|
streamsize
|
size_t型で定義された型です。
|
int_type
|
int型で定義された型です。
|
pos_type
|
long型で定義された型です。
|
off_type
|
long型で定義された型です。
|
|
|
|
変数
|
init_cnt
|
ストリーム入出力オブジェクト数をカウントする静的データメンバです。
低水準インタフェースで0に初期化する必要があります。
|
関数
|
Init()
|
コンストラクタです
|
~Init()
|
デストラクタです。
|
クラスInitのコンストラクタです。
init_cntをインクリメントします。
クラスInitのデストラクタです。
init_cntをデクリメントします。
|
|
|
型
|
fmtflags
|
フォーマット制御情報を表す型です。
|
iostate
|
ストリームバッファの入出力状態を表す型です。
|
openmode
|
ファイルのオープンモードを表す型です。
|
seekdir
|
ストリームバッファのシーク状態を表す型です。
|
変数
|
fmtfl
|
書式フラグです。
|
wide
|
フィールド幅です。
|
prec
|
出力時の精度(小数点以下の桁数)です。
|
fillch
|
詰め文字です。
|
関数
|
void _ec2p_init_base()
|
初期化します。
|
void _ec2p_copy_base(
ios_base&ios_base_dt)
|
ios_base_dtをコピーします。
|
ios_base()
|
コンストラクタです。
|
~ios_base()
|
デストラクタです。
|
fmtflags flags() const
|
書式フラグ(fmtfl)を参照します。
|
fmtflags flags(fmtflags fmtflg)
|
fmtflg&書式フラグ(fmtfl)を書式フラグ(fmtfl)に設定します。
|
fmtflags setf(fmtflags fmtflg)
|
fmtflgを書式フラグ(fmtfl)に設定します。
|
fmtflags setf(
fmtflags fmtflg,
fmtflags mask)
|
mask&fmtflgを書式フラグ(fmtfl)に設定します。
|
void unsetf(fmtflags mask)
|
~mask&書式フラグ(fmtfl)を書式フラグ(fmtfl)に設定します。
|
char fill() const
|
詰め文字(fillch)を参照します。
|
char fill(char ch)
|
chを詰め文字(fillch)に設定します。
|
int precision() const
|
精度(prec)を参照します。
|
streamsize precision(
streamsize preci)
|
preciを精度(prec)に設定します。
|
streamsize width() const
|
フィールド幅(wide)を参照します。
|
streamsize width(streamsize wd)
|
wdをフィールド幅(wide)に設定します。
|
入出力に関するフォーマット制御情報を定義します。
fmtflagsの各ビットマスクの定義は以下のようになります。
const ios_base::fmtflags ios_base::boolalpha=0x0000;
const ios_base::fmtflags ios_base::skipws=0x0001;
const ios_base::fmtflags ios_base::unitbuf=0x0002;
const ios_base::fmtflags ios_base::uppercase=0x0004;
const ios_base::fmtflags ios_base::showbase=0x0008;
const ios_base::fmtflags ios_base::showpoint=0x0010;
const ios_base::fmtflags ios_base::showpos=0x0020;
const ios_base::fmtflags ios_base::left=0x0040;
const ios_base::fmtflags ios_base::right=0x0080;
const ios_base::fmtflags ios_base::internal=0x0100;
const ios_base::fmtflags ios_base::adjustfield=0x01c0;
const ios_base::fmtflags ios_base::dec=0x0200;
const ios_base::fmtflags ios_base::oct=0x0400;
const ios_base::fmtflags ios_base::hex=0x0800;
const ios_base::fmtflags ios_base::basefield=0x0e00;
const ios_base::fmtflags ios_base::scientific=0x1000;
const ios_base::fmtflags ios_base::fixed=0x2000;
const ios_base::fmtflags ios_base::floatfield=0x3000;
const ios_base::fmtflags ios_base::_fmtmask=0x3fff;
ストリームバッファの入出力状態を定義します。
iostateの各ビットマスクの定義は以下のようになります。
const ios_base::iostate ios_base::goodbit=0x0;
const ios_base::iostate ios_base::eofbit=0x1;
const ios_base::iostate ios_base::failbit=0x2;
const ios_base::iostate ios_base::badbit=0x4;
const ios_base::iostate ios_base::_statemask=0x7;
ファイルのオープンモードを定義します。
openmodeの各ビットマスクの定義は以下のようになります。
const ios_base::openmode ios_base::in=0x01; 入力用のファイルをopenします。
const ios_base::openmode ios_base::out=0x02; 出力用のファイルをopenします。
const ios_base::openmode ios_base::ate=0x04; オープン後一度だけeofにseekします。
const ios_base::openmode ios_base::app=0x08; 書き込む度にeofにseekします。
const ios_base::openmode ios_base::trunc=0x10; ファイルを上書きモードでopenします。
const ios_base::openmode ios_base::binary=0x20; ファイルをバイナリモードでopenします。
ストリームバッファのシーク状態を定義します。
引き続き入力または出力を行うためのストリーム内の位置を決定します。
seekdirの各ビットマスクの定義は以下のようになります。
const ios_base::seekdir ios_base::beg=0x0;
const ios_base::seekdir ios_base::cur=0x1;
const ios_base::seekdir ios_base::end=0x2;
void ios_base::_ec2p_init_base()
|
以下の値で初期設定します。
fmtfl = skipws | dec;
wide = 0;
prec = 6;
fillch = ' ';
void ios_base::_ec2p_copy_base(ios_base& ios_base_dt)
|
ios_base_dtをコピーします。
クラスios_baseのコンストラクタです。
Init::Init()を呼び出します。
クラスios_base のデストラクタです。
ios_base::fmtflags ios_base::flags() const
|
書式フラグ(fmtfl)を参照します。
リターン値は、書式フラグ(fmtfl)です。
ios_base::fmtflags ios_base::flags(fmtflags fmtflg)
|
fmtflg&書式フラグ(fmtfl)を書式フラグ(fmtfl)に設定します。
リターン値は、設定前の書式フラグ(fmtfl)です。
ios_base::fmtflags ios_base::setf(fmtflags fmtflg)
|
fmtflgを書式フラグ(fmtfl)に設定します。
リターン値は、設定前の書式フラグ(fmtfl)です。
ios_base::fmtflags ios_base::setf(fmtflags fmtflg, fmtflags mask)
|
mask&fmtflgの値を書式フラグ(fmtfl)に設定します。
リターン値は、設定前の書式フラグ(fmtfl)です。
void ios_base::unsetf(fmtflags mask)
|
~mask&書式フラグ(fmtfl)を書式フラグ(fmtfl)に設定します。
char ios_base::fill() const
|
詰め文字(fillch)を参照します。
リターン値は、詰め文字(fillch)です。
char ios_base::fill(char ch)
|
chを詰め文字として設定します。
リターン値は、設定前の詰め文字(fillch)です。
int ios_base::precision() const
|
精度(prec)を参照します。
リターン値は、精度(prec)です。
streamsize ios_base::precision(streamsize preci)
|
preciを精度(prec)に設定します。
リターン値は、設定前の精度(prec)です。
streamsize ios_base::width() const
|
フィールド幅(wide)を参照します。
リターン値は、フィールド幅(wide)です。
streamsize ios_base::width(streamsize wd)
|
wdをフィールド幅(wide)に設定します。
リターン値は、設定前のフィールド幅(wide)です。
|
|
|
変数
|
sb
|
streambufオブジェクトへのポインタです。
|
tiestr
|
ostreamオブジェクトへのポインタです。
|
state
|
streambufへの状態フラグです。
|
関数
|
ios()
|
コンストラクタです。
|
ios(streambuf* sbptr)
|
void init(streambuf* sbptr)
|
初期設定を行います。
|
virtual ~ios()
|
デストラクタです。
|
operator void*() const
|
エラー有無(!state&(badbit | failbit))を判定します。
|
bool operator!() const
|
エラー有無(state&(badbit | failbit))を判定します。
|
iostate rdstate() const
|
状態フラグ(state)を参照します。
|
void clear(iostate st = goodbit)
|
指定された状態(st)を除いて状態フラグ(state)をクリアします。
|
void setstate(iostate st)
|
stを状態フラグ(state)に設定します。
|
bool good() const
|
エラー有無(state==goodbit)を判定します。
|
bool eof() const
|
入力ストリームの最後かどうか(state&eofbit)を判定します。
|
bool bad() const
|
エラー有無(state&badbit)を判定します。
|
bool fail() const
|
入力テキストが要求パターンと不一致であるかどうか(state&(badbit | failbit))判定します。
|
ostream* tie() const
|
ostreamオブジェクトへのポインタ(tiestr)を参照します。
|
ostream* tie(ostream* tstrptr)
|
tstrptrをostreamオブジェクトへのポインタ(tiestr)に設定します。
|
streambuf* rdbuf() const
|
streambufオブジェクトへのポインタ(sb)を参照します。
|
streambuf* rdbuf(streambuf* sbptr)
|
sbptrをstreambufオブジェクトへのポインタ(sb)に設定します。
|
ios& copyfmt(const ios& rhs)
|
rhsの状態フラグ(state)をコピーします。
|
クラスiosのコンストラクタです。
init(0)を呼び出し、初期値をそのメンバオブジェクトに設定します。
ios::ios(streambuf* sbptr)
|
クラスiosのコンストラクタです。
init(sbptr)を呼び出し、初期値をそのメンバオブジェクトに設定します。
void ios::init(streambuf* sbptr)
|
sbptrをsbに設定します。
state、tiestrを0に設定します。
クラスiosのデストラクタです。
ios::operator void*() const
|
エラー有無(!state&(badbit | failbit))を判定します。
リターン値は次のとおりです。
エラー有の場合:false
エラー無の場合:true
bool ios::operator!() const
|
エラー有無(state&(badbit | failbit))を判定します。
リターン値は次のとおりです。
エラー有の場合:true
エラー無の場合:false
iostate ios::rdstate() const
|
状態フラグ(state) を参照します。
リターン値は、状態フラグ(state)です。
void ios::clear(iostate st = goodbit)
|
指定された状態(st)を除いて状態フラグ(state)をクリアします。
streambufオブジェクトへのポインタ(sb)が0のときは、状態フラグ(state)にbadbitを設定します。
void ios::setstate(iostate st)
|
stを状態フラグ(state)に設定します。
エラー有無(state==goodbit)を判定します。
リターン値は次のとおりです。
エラー有の場合:false
エラー無の場合:true
入力ストリームの最後かどうか(state&eofbit)を判定します。
リターン値は次のとおりです。
入力ストリームの最後の場合:true
入力ストリームの最後以外の場合:false
エラー有無(state&badbit)を判定します。
リターン値は次のとおりです。
エラー有の場合:true
エラー無の場合:false
入力テキストが要求パターンと不一致であるかどうか(state&(badbit | failbit))を判定します。
リターン値は次のとおりです。
不一致の場合:true
一致の場合:false
ostream* ios::tie() const
|
ostreamオブジェクトへのポインタ(tiestr)を参照します。
リターン値は、ostreamオブジェクトへのポインタ(tiestr)です。
ostream* ios::tie(ostream* tstrptr)
|
tstrptrをostreamオブジェクトへのポインタ(tiestr)に設定します。
リターン値は、設定前のostreamオブジェクトへのポインタ(tiestr)です。
streambuf* ios::rdbuf() const
|
streambufオブジェクトへのポインタ(sb)を参照します。
リターン値は、streambufオブジェクトへのポインタ(sb)です。
streambuf* ios::rdbuf(streambuf* sbptr)
|
sbptrをstreambufオブジェクトへのポインタ(sb)に設定します。
リターン値は、設定前のstreambufオブジェクトへのポインタ(sb)です。
ios& ios::copyfmt(const ios& rhs)
|
rhsの状態フラグ(state)をコピーします。
リターン値は*thisです。
|
|
|
関数
|
ios_base& showbase(ios_base& str)
|
基数表示接頭辞モードに設定します。
|
ios_base& noshowbase(
ios_base& str)
|
基数表示接頭辞モードをクリアします。
|
ios_base& showpoint (ios_base& str)
|
小数点生成モードに設定します。
|
ios_base& noshowpoint (
ios_base& str)
|
小数点生成モードをクリアします。
|
ios_base& showpos(ios_base& str)
|
+記号生成モードに設定します。
|
ios_base& noshowpos(ios_base& str)
|
+記号生成モードをクリアします。
|
ios_base& skipws(ios_base& str)
|
空白読み飛ばしモードに設定します。
|
ios_base& noskipws(ios_base& str)
|
空白読み飛ばしモードをクリアします。
|
ios_base& uppercase(ios_base& str)
|
大文字変換モードに設定します。
|
ios_base& nouppercase(
ios_base& str)
|
大文字変換モードをクリアします。
|
ios_base& internal(ios_base& str)
|
内部補充モードに設定します。
|
ios_base& left(ios_base& str)
|
左側補充モードに設定します。
|
ios_base& right(ios_base& str)
|
右側補充モードに設定します。
|
ios_base& dec(ios_base& str)
|
10進モードに設定します。
|
ios_base& hex(ios_base& str)
|
16進モードに設定します。
|
ios_base& oct(ios_base& str)
|
8進モードに設定します。
|
ios_base& fixed(ios_base& str)
|
固定小数点モードに設定します。
|
ios_base& scientific(ios_base& str)
|
科学表記法モードに設定します。
|
ios_base& showbase(ios_base& str)
|
データのはじめに基数を表示させるモードに設定します。
16進数のときは、0xを行の先頭に付加します。10進数のときは、そのまま出力します。
8進数のときは、0を行の先頭に付加します。
リターン値はstrです。
ios_base& noshowbase(ios_base& str)
|
データのはじめに基数を表示させるモードをクリアします。
リターン値はstrです。
ios_base& showpoint(ios_base& str)
|
小数点を出力するモードに設定します。
精度の指定がない場合、小数点以下6桁で表示します。
リターン値はstrです。
ios_base& noshowpoint(ios_base& str)
|
小数点を出力するモードをクリアします。
リターン値はstrです。
ios_base& showpos(ios_base& str)
|
+記号生成出力モード(正の数に対して+の符号を付加)に設定します。
リターン値はstrです。
ios_base& noshowpos(ios_base& str)
|
+記号生成出力モードをクリアします。
リターン値はstrです。
ios_base& skipws(ios_base& str)
|
空白読み飛ばし入力モード(連続する空白をスキップ)に設定します。
リターン値はstrです。
ios_base& noskipws(ios_base& str)
|
空白読み飛ばし入力モードをクリアします。
リターン値はstrです。
ios_base& uppercase(ios_base& str)
|
大文字変換出力モードに設定します。
16進の基数表現が大文字の0Xになり、数値自体も大文字になります。
浮動小数点の指数表現も大文字のEになります。
リターン値はstrです。
ios_base& nouppercase(ios_base& str)
|
大文字変換出力モードをクリアします。
リターン値はstrです。
ios_base& internal(ios_base& str)
|
フィールド幅(wide)の範囲で出力時に
符号、基数
詰め文字(fill)
数値
の順で出力します。
リターン値はstrです。
ios_base& left(ios_base& str)
|
フィールド幅(wide)の範囲で出力時に左詰めします。
リターン値はstrです。
ios_base& right(ios_base& str)
|
フィールド幅(wide)の範囲で出力時に右詰めします。
リターン値はstrです。
ios_base& dec(ios_base& str)
|
変換基数を10進モードに設定します。
リターン値はstrです。
ios_base& hex(ios_base& str)
|
変換基数を16進モードに設定します。
リターン値はstrです。
ios_base& oct(ios_base& str)
|
変換基数を8進モードに設定します。
リターン値はstrです。
ios_base& fixed(ios_base& str)
|
固定小数点出力モードに設定します。
リターン値はstrです。
ios_base& scientific(ios_base& str)
|
科学表記法出力モード(指数表記)に設定します。
リターン値はstrです。
|
|
|
定数
|
eof
|
ファイル終了を示します。
|
変数
|
_B_cnt_ptr
|
バッファの有効データ長へのポインタです。
|
B_beg_ptr
|
バッファのベースポインタへのポインタです。
|
_B_len_ptr
|
バッファの長さへのポインタです。
|
B_next_ptr
|
バッファの次の読み出し位置へのポインタです。
|
B_end_ptr
|
バッファの終端位置へのポインタです。
|
B_beg_pptr
|
制御バッファの先頭位置へのポインタです。
|
B_next_pptr
|
バッファの次の読み出し位置へのポインタです。
|
C_flg_ptr
|
ファイルの入出力制御フラグへのポインタです。
|
関数
|
char* _ec2p_getflag() const
|
ファイル入出力制御フラグのポインタを参照します。
|
char*& _ec2p_gnptr()
|
バッファの次の読み出し位置へのポインタを参照します。
|
char*& _ec2p_pnptr()
|
バッファの次の書き込み位置へのポインタを参照します。
|
void _ec2p_bcntplus()
|
バッファの有効データ長をインクリメントします。
|
void _ec2p_bcntminus()
|
バッファの有効データ長をデクリメントします。
|
void _ec2p_setbPtr(
char** begptr,
char** curptr,
long* cntptr,
long* lenptr,
char* flgptr)
|
streambufのポインタを設定します。
|
streambuf()
|
コンストラクタです。
|
virtual ~streambuf()
|
デストラクタです。
|
streambuf* pubsetbuf(char* s, streamsize n)
|
ストリーム入出力用のバッファを確保します。この関数ではsetbuf(s,n)*1を呼び出します。
|
pos_type pubseekoff(
off_type off,
ios _base::seekdir way,
ios_base::openmode
which = ios_base::in | ios_base::out)
|
wayで指定された方法で入出力ストリームの読み書き位置を移動させます。この関数ではseekoff(off,way,which)*1を呼び出します。
|
pos_type pubseekpos(
pos_type sp,
ios_base::openmode
which = ios_base::in | ios_base::out)
|
ストリームの先頭から現在の位置までのオフセットを求めます。この関数ではseekpos(sp,which)*1を呼び出します。
|
int pubsync()
|
出力ストリームをフラッシュします。この関数ではsync()*1を呼び出します。
|
streamsize in_avail()
|
入力ストリームの最後尾から現在位置までのオフセットを求めます。
|
int_type snextc()
|
次の一文字を読み込みます。
|
int_type sbumpc()
|
一文字読み込みポインタを次に設定します。
|
int_type sgetc()
|
一文字読み込みます。
|
int sgetn(char* s, streamsize n)
|
sの指す記憶領域にn個の文字を設定します。
|
int_type sputbackc(char c)
|
読み込み位置をプットバックします。
|
int sungetc()
|
読み込み位置をプットバックします。
|
int sputc(char c)
|
文字cを挿入します。
|
int_type sputn(const char* s, streamsize n)
|
sの指すn個の文字を挿入します。
|
char* eback() const
|
入力ストリームの先頭ポインタを求めます。
|
char* gptr() const
|
入力ストリームの次ポインタを求めます。
|
char* egptr() const
|
入力ストリームの最後尾ポインタを求めます。
|
関数
|
void gbump(int n)
|
入力ストリームの次ポインタをn進めます。
|
void setg(
char* gbeg,
char* gnext,
char* gend)
|
入力ストリームの各ポインタを代入します。
|
char* pbase() const
|
出力ストリームの先頭ポインタを求めます。
|
char* pptr() const
|
出力ストリームの次ポインタを求めます。
|
char* epptr() const
|
出力ストリームの最後尾ポインタを求めます。
|
void pbump(int n)
|
出力ストリームの次ポインタをn進めます。
|
void setp(char* pbeg, char* pend)
|
出力ストリームの各ポインタを設定します。
|
virtual streambuf* setbuf(char* s, streamsize n)*1
|
派生する各クラスごとに、個別に定義する演算を実行します。
|
virtual pos_type seekoff(
off_type off,
ios_base::seekdir way,
ios_base::openmode = (ios_base::openmode)
(ios_base::in | ios_base::out))*1
|
ストリーム位置を変更します。
|
virtual pos_type seekpos(
pos_type sp,
ios_base::openmode = (ios_base::openmode)
(ios_base::in | ios_base::out)) *1
|
ストリーム位置を変更します。
|
virtual int sync()*1
|
出力ストリームをフラッシュします。
|
virtual int showmanyc()*1
|
入力ストリームの有効な文字数を求めます。
|
virtual streamsize xsgetn(char* s, streamsize n)
|
sの指す記憶領域にn個の文字を設定します。
|
virtual int_type underflow()*1
|
ストリーム位置を動かさずに一文字読み込みます。
|
virtual int_type uflow()*1
|
次ポインタの一文字を読み込みます。
|
virtual int_type pbackfail(int_type c = eof)*1
|
cによって示される文字をプットバックします。
|
virtual streamsize xsputn(const char* s,
streamsize n)
|
sの指すn個の文字を挿入します。
|
virtual int_type overflow(int_type c = eof)*1
|
cを出力ストリームに挿入します。
|
char* streambuf::_ec2p_getflag() const
|
ファイル入出力制御フラグのポインタを参照します。
char*& streambuf::_ec2p_gnptr()
|
バッファの次の読み出し位置へのポインタを参照します。
char*& streambuf::_ec2p_pnptr()
|
バッファの次の書き込み位置へのポインタを参照します。
void streambuf::_ec2p_bcntplus()()
|
バッファの有効データ長をインクリメントします。
void streambuf::_ec2p_bcntminus()
|
バッファの有効データ長をデクリメントします。
void _ec2p_setbPtr(char** begptr, char** curptr, long* cntptr, long* lenptr, char* flgptr)
|
streambufのポインタを設定します。
コンストラクタです。
以下の値で初期化します。
_B_cnt_ptr=B_beg_ptr=B_next_ptr=B_end_ptr=C_flg_ptr=_B_len_ptr=0
B_beg_pptr=&B_beg_ptr
B_next_pptr=&B_next_ptr
virtual streambuf::~streambuf()
|
デストラクタです。
streambuf* streambuf::pubsetbuf(char* s, streamsize n)
|
ストリーム入出力用のバッファを確保します。
この関数ではsetbuf(s,n)を呼び出します。
リターン値は、*this です。
pos_type streambuf::pubseekoff(off_type off, ios _base::seekdir way, ios_base::openmode which = (ios_base::openmode)(ios_base::in | ios_base::out))
|
wayで指定された方法で入出力ストリームの読み書き位置を移動させます。
この関数ではseekoff(off,way,which)を呼び出します。
リターン値は、新たに設定されたストリームの位置です。
pos_type streambuf::pubseekpos(pos_type sp, ios_base::openmode which = (ios_base::openmode)(ios_base::in | ios_base::out))
|
ストリームの先頭から現在の位置までのオフセットを求めます。
現在のストリームポインタからspだけ移動します。
この関数ではseekpos(sp,which)を呼び出します。
リターン値は、先頭からのオフセットです。
出力ストリームをフラッシュします。
この関数ではsync()を呼び出します。
リターン値は0です。
streamsize streambuf::in_avail()
|
入力ストリームの最後尾から現在位置までのオフセットを求めます。
リターン値は次のとおりです。
読み込み位置が有効の場合:最後尾から現在位置までのオフセット
読み込み位置が無効の場合:0(showmanyc()を呼び出します)
int_type streambuf::snextc()
|
一文字読み込みます。読み込んだ文字がeofでなければ、次の一文字を読み込みます。
リターン値は次のとおりです。
eofでない場合:読み込んだ文字
eofの場合:eof
int_type streambuf::sbumpc()
|
一文字読み込みポインタを次に設定します。
リターン値は次のとおりです。
読み込み位置が無効でない場合:読み込んだ文字
読み込み位置が無効の場合:eof
int_type streambuf::sgetc()
|
一文字読み込みます。
リターン値は次のとおりです。
読み込み位置が無効でない場合:読み込んだ文字
読み込み位置が無効の場合:eof
int streambuf::sgetn(char* s, streamsize n)
|
sの指す記憶領域にn個の文字を設定します。
文字列中にeofを検出した場合、設定を終了します。
リターン値は、設定した文字数です。
int_type streambuf::sputbackc(char c)
|
読み込み位置が正常で読み込み位置のプットバックデータがcと同一の場合、読み込み位置をプットバックします。
リターン値は次のとおりです。
プットバックできた場合:cの値
プットバックできなかった場合:eof
読み込み位置が正常である場合、読み込み位置をプットバックします。
リターン値は次のとおりです。
プットバックできた場合:プットバックした値
プットバックできなかった場合:eof
int streambuf::sputc(char c)
|
文字cを挿入します。
リターン値は次のとおりです。
書き込み位置が正しい場合:cの値
書き込み位置が不正な場合:eof
int_type streambuf::sputn(const char* s, streamsize n)
|
sの指すn個の文字を挿入します。
バッファがnより小さい場合は、バッファサイズ分だけ挿入します。
リターン値は、挿入された文字数です。
char* streambuf::eback() const
|
入力ストリームの先頭ポインタを求めます。
リターン値は、先頭ポインタです。
char* streambuf::gptr() const
|
入力ストリームの次ポインタを求めます。
リターン値は、次ポインタです。
char* streambuf::egptr() const
|
入力ストリームの最後尾ポインタを求めます。
リターン値は、最後尾ポインタです。
void streambuf::gbump(int n)
|
入力ストリームの次ポインタをn進めます。
void streambuf::setg(char* gbeg, char* gnext, char* gend)
|
入力ストリームの各ポインタに、以下の設定を行います。
*B_beg_pptr=gbeg;
*B_next_pptr=gnext;
B_end_ptr=gend;
*_B_cnt_ptr=gend-gnext;
*_B_len_ptr=gend-gbeg;
char* streambuf::pbase() const
|
出力ストリームの先頭ポインタを求めます。
リターン値は、先頭ポインタです。
char* streambuf::pptr() const
|
出力ストリームの次ポインタを求めます。
リターン値は、次ポインタです。
char* streambuf::epptr() const
|
出力ストリームの最後尾ポインタを求めます。
リターン値は、最後尾ポインタです。
void streambuf::pbump(int n)
|
出力ストリームの次ポインタをn進めます。
void streambuf::setp(char* pbeg, char* pend)
|
出力ストリームの各ポインタに、以下の設定を行います。
*B_beg_pptr=pbeg;
*B_next_pptr=pbeg;
B_end_ptr=pend;
*_B_cnt_ptr=pend-pbeg;
*_B_len_ptr=pend-pbeg;
virtual streambuf* streambuf::setbuf(char* s, streamsize n)
|
streambufから派生する各クラスごとに、個別に定義する演算を実行します。
リターン値は*thisです。このクラスでは処理を定義していません。
virtual pos_type streambuf::seekoff(off_type off, ios_base::seekdir way, ios_base::openmode = (ios_base::openmode)(ios_base::in | ios_base::out))
|
ストリーム位置を変更します。
リターン値は-1です。このクラスでは処理を定義していません。
virtual pos_type streambuf::seekpos(pos_type sp, ios_base::openmode = (ios_base::openmode)(ios_base::in | ios_base::out))
|
ストリーム位置を変更します。
リターン値は-1です。このクラスでは処理を定義していません。
virtual int streambuf::sync()
|
出力ストリームをフラッシュします。
リターン値は0です。このクラスでは処理を定義していません。
virtual int streambuf::showmanyc()
|
入力ストリームの有効な文字数を求めます。
リターン値は0です。このクラスでは処理を定義していません。
virtual streamsize streambuf::xsgetn(char* s, streamsize n)
|
sの指す記憶領域にn個の文字を設定します。
バッファがnより小さい場合は、バッファサイズ分だけ設定します。
リターン値は、入力された文字数です。
virtual int_type streambuf::underflow()
|
ストリーム位置を動かさずに一文字読み込みます。
リターン値はeofです。このクラスでは処理を定義していません。
virtual int_type streambuf::uflow()
|
次ポインタの一文字を読み込みます。
リターン値はeofです。このクラスでは処理を定義していません。
virtual int_type streambuf::pbackfail(int_type c = eof)
|
cによって示される文字をプットバックします。
リターン値はeofです。このクラスでは処理を定義していません。
virtual streamsize streambuf::xsputn(const char* s, streamsize n)
|
sの指すn個の文字を挿入します。
バッファがnより小さい場合は、バッファサイズ分だけ挿入します。
リターン値は、挿入された文字数です。
virtual int_type streambuf::overflow(int_type c = eof)
|
cを出力ストリームに挿入します。
リターン値はeofです。このクラスでは処理を定義していません。
|
|
|
変数
|
ok_
|
入力可能状態か否かを意味します。
|
関数
|
sentry(istream& is, bool noskipws = false)
|
コンストラクタです。
|
~sentry()
|
デストラクタです。
|
operator bool()
|
ok_を参照します。
|
istream::sentry::sentry(istream& is, bool noskipws = _false)
|
内部クラスsentryのコンストラクタです。
good()が非0の場合、フォーマット付きまたはフォーマットなし入力を可能にします。
tie()が非0の場合、関連する出力ストリームをフラッシュします。
istream::sentry::~sentry()
|
内部クラスsentryのデストラクタです。
istream::sentry::operator bool()
|
ok_を参照します。
リターン値はok_です。
|
|
|
変数
|
chcount
|
最後にコールされた入力関数が抽出した文字数です。
|
関数
|
int _ec2p_getistr(char* str, unsigned int dig, int mode)
|
strをdigが示す基数で変換します。
|
istream(streambuf* sb)
|
コンストラクタです。
|
virtual ~istream()
|
デストラクタです。
|
istream& operator>>(bool& n)
|
抽出した文字をnに格納します。
|
istream& operator>>(short& n)
|
istream& operator>>(unsigned short& n)
|
istream& operator>>(int& n)
|
istream& operator>>(unsigned int& n)
|
istream& operator>>(long& n)
|
istream& operator>>(unsigned long& n)
|
istream& operator>>(long long& n)
|
istream& operator>>(unsigned long long& n)
|
istream& operator>>(float& n)
|
istream& operator>>(double& n)
|
istream& operator>>(long double& n)
|
istream& operator>>(void*& p)
|
voidを指すポインタに変換してpに格納します。
|
istream& operator>>(streambuf* sb)
|
文字を抽出し、sbの指す記憶領域へ格納します。
|
streamsize gcount() const
|
chcount(抽出文字数)を求めます。
|
int_type get()
|
文字を抽出します。
|
istream& get(char& c)
|
文字を抽出しcに格納します。
|
istream& get(signed char& c)
|
istream& get(unsigned char& c)
|
関数
|
istream& get(char* s, streamsize n)
|
サイズn-1の文字列を抽出し、sの指す記憶領域に格納します。
|
istream& get(signed char* s, streamsize n)
|
istream& get(unsigned char* s, streamsize n)
|
istream& get(char* s, streamsize n, char delim)
|
サイズn-1の文字列を抽出し、sの指す記憶領域に格納します。文字列内に'delim'を検出したら、入力を終了します。
|
istream& get(
signed char* s,
streamsize n,
char delim)
|
istream& get(
unsigned char* s,
streamsize n,
char delim)
|
istream& get(streambuf& sb)
|
文字列を抽出し、sbの指す記憶領域に格納します。
|
istream& get(streambuf& sb, char delim)
|
文字列を抽出し、sbの指す記憶領域に格納します。途中で文字'delim'を検出したら、入力を終了します。
|
istream& getline(char* s, streamsize n)
|
サイズn-1の文字列を抽出し、sの指す記憶領域に格納します。
|
istream& getline(signed char* s, streamsize n)
|
istream& getline(unsigned char* s, streamsize n)
|
istream& getline(char* s, streamsize n, char delim)
|
サイズn-1の文字列を抽出し、sの指す記憶領域に格納します。途中で文字'delim'を検出したら、入力を終了します。
|
istream& getline(
signed char* s,
streamsize n,
char delim)
|
istream& getline(
unsigned char* s,
streamsize n,
char delim)
|
istream& ignore(
streamsize n = 1,
int_type delim = streambuf::eof)
|
n個の文字を読み飛ばします。途中で文字'delim'を検出したら、読み飛ばし処理を中止します。
|
int_type peek()
|
次の入手可能な入力文字を求めます。
|
istream& read(char* s, streamsize n)
|
サイズnの文字列を抽出し、sの指す記憶領域に格納します。
|
istream& read(signed char* s, streamsize n)
|
istream& read(unsigned char* s, streamsize n)
|
streamsize readsome(char* s, streamsize n)
|
サイズnの文字列を抽出し、sの指す記憶領域に格納します。
|
streamsize readsome(signed char* s, streamsize n)
|
streamsize readsome(
unsigned char* s,
streamsize n)
|
istream& putback(char c)
|
文字を入力ストリームに戻します。
|
istream& unget()
|
入力ストリームの位置を戻します。
|
関数
|
int sync()
|
入力ストリームがあるかどうかを調べます。この関数はstreambuf::pubsync()を呼び出します。
|
pos_type tellg()
|
入力ストリームの位置を調べます。この関数はstreambuf::pubseekoff(0,cur,in)を呼び出します。
|
istream& seekg(pos_type pos)
|
現在のストリームポインタからposだけ移動します。この関数はstreambuf::pubseekpos(pos)を呼び出します。
|
istream& seekg(off_type off, ios_base::seekdir dir)
|
dirで指定された方法で入力ストリームの読み込み位置を移動します。この関数はstreambuf::pubseekoff(off,dir)を呼び出します。
|
int istream::_ec2p_getistr(char* str, unsigned int dig, int mode)
|
strをdigが示す基数で変換します。
リターン値は、変換した基数です。
istream::istream(streambuf* sb)
|
クラスistreamのコンストラクタです。
ios::init(sb)を呼び出します。
chcount=0の設定を行います。
virtual istream::~istream()
|
クラスistreamのデストラクタです。
istream& istream::operator>>(bool& n)
|
抽出した文字をnに格納します。
リターン値は*thisです。
istream& istream::operator>>(short& n)
|
抽出した文字をnに格納します。
リターン値は*thisです。
istream& istream::operator>>(unsigned short& n)
|
抽出した文字をnに格納します。
リターン値は*thisです。
istream& istream::operator>>(int& n)
|
抽出した文字をnに格納します。
リターン値は*thisです。
istream& istream::operator>>(unsigned int& n)
|
抽出した文字をnに格納します。
リターン値は*thisです。
istream& istream::operator>>(long& n)
|
抽出した文字をnに格納します。
リターン値は*thisです。
istream& istream::operator>>(unsigned long& n)
|
抽出した文字をnに格納します。
リターン値は*thisです。
istream& istream::operator>>(long long& n)
|
抽出した文字をnに格納します。
リターン値は*thisです。
istream& istream::operator>>(unsigned long long& n)
|
抽出した文字をnに格納します。
リターン値は*thisです。
istream& istream::operator>>(float& n)
|
抽出した文字をnに格納します。
リターン値は*thisです。
istream& istream::operator>>(double& n)
|
抽出した文字をnに格納します。
リターン値は*thisです。
istream& istream::operator>>(long double& n)
|
抽出した文字をnに格納します。
リターン値は*thisです。
istream& istream::operator>>(void*& p)
|
抽出した文字をvoid*型に変換し、pの指す記憶領域に格納します。
リターン値は*thisです。
istream& istream::operator>>(streambuf* sb)
|
文字を抽出し、sbの指す記憶領域に格納します。
抽出文字がない場合は、setstate(failbit)を呼び出します。
リターン値は*thisです。
streamsize istream::gcount() const
|
chcount(抽出文字数)を参照します。
リターン値はchcountです。
文字を抽出します。
リターン値は次のとおりです。
抽出可能の場合:抽出した文字
抽出不可の場合:setstate(failbat)を呼び出して、streambuf::eof
istream& istream::get(char& c)
|
文字を抽出しcに格納します。抽出した文字がstreambuf::eof の場合は、failbitを設定します。
リターン値は*thisです。
istream& istream::get(signed char& c)
|
文字を抽出しcに格納します。抽出した文字がstreambuf::eof の場合は、failbitを設定します。
リターン値は*thisです。
istream& istream::get(unsigned char& c)
|
文字を抽出しcに格納します。抽出した文字がstreambuf::eof の場合は、failbitを設定します。
リターン値は*thisです。
istream& istream::get(char* s, streamsize n)
|
サイズn-1の文字列を抽出し、sの指す記憶領域に格納します。
ok_==falseまたは抽出した文字数が0の場合は、failbitを設定します。
リターン値は*thisです。
istream& istream::get(signed char* s, streamsize n)
|
サイズn-1の文字列を抽出し、sの指す記憶領域に格納します。
ok_==falseまたは抽出した文字数が0の場合は、failbitを設定します。
リターン値は*thisです。
istream& istream::get(unsigned char* s, streamsize n)
|
サイズn-1の文字列を抽出し、sの指す記憶領域に格納します。
ok_==falseまたは抽出した文字数が0の場合は、failbitを設定します。
リターン値は*thisです。
istream& istream::get(char* s, streamsize n, char delim)
|
サイズn-1の文字列を抽出し、sの指す記憶領域に格納します。
文字列内に'delim'を検出したら、終了します。
ok_==falseまたは抽出した文字数が0の場合は、failbitを設定します。
リターン値は*thisです。
istream& istream::get(signed char* s, streamsize n, char delim)
|
サイズn-1の文字列を抽出し、sの指す記憶領域に格納します。
文字列内に'delim'を検出したら、終了します。
ok_==falseまたは抽出した文字数が0の場合は、failbitを設定します。
リターン値は*thisです。
istream& istream::get(unsigned char* s, streamsize n, char delim)
|
サイズn-1の文字列を抽出し、sの指す記憶領域に格納します。
文字列内に'delim'を検出したら、終了します。
ok_==falseまたは抽出した文
字数が0の場合は、failbitを設定します。
リターン値は*thisです。
istream& istream::get(streambuf& sb)
|
文字列を抽出し、sbの指す記憶領域に格納します。
ok_==falseまたは抽出した文字数が0の場合は、failbitを設定します。
リターン値は*thisです。
istream& istream::get(streambuf& sb, char delim)
|
文字列を抽出し、sbの指す記憶領域に格納します。
途中で文字'delim'を検出したら、終了します。
ok_==falseまたは抽出した文字数が0の場合は、failbitを設定します。
リターン値は*thisです。
istream& istream::getline(char* s, streamsize n)
|
サイズn-1の文字列を抽出し、sの指す記憶領域に格納します。
ok_==falseまたは抽出した文字数が0の場合は、failbitを設定します。
リターン値は*thisです。
istream& istream::getline(signed char* s, streamsize n)
|
サイズn-1の文字列を抽出し、sの指す記憶領域に格納します。
ok_==falseまたは抽出した文字数が0の場合は、failbitを設定します。
リターン値は*thisです。
istream& istream::getline(unsigned char* s, streamsize n)
|
サイズn-1の文字列を抽出し、sの指す記憶領域に格納します。
ok_==falseまたは抽出した文字数が0の場合は、failbitを設定します。
リターン値は*thisです。
istream& istream::getline(char* s, streamsize n, char delim)
|
サイズn-1の文字列を抽出し、sの指す記憶領域に格納します。
途中で文字'delim'を検出したら、終了します。
ok_==falseまたは抽出した文字数が0の場合は、failbitを設定します。
リターン値は*thisです。
istream& istream::getline(signed char* s, streamsize n, char delim)
|
サイズn-1の文字列を抽出し、sの指す記憶領域に格納します。
途中で文字'delim'を検出したら、終了します。
ok_==falseまたは抽出した文字数が0の場合は、failbitを設定します。
リターン値は*thisです。
istream& istream::getline(unsigned char* s, streamsize n, char delim)
|
サイズn-1の文字列を抽出し、sの指す記憶領域に格納します。
途中で文字'delim'を検出したら、終了します。
ok_==falseまたは抽出した文字数が0の場合は、failbitを設定します。
リターン値は*thisです。
istream& istream::ignore(streamsize n = 1, int_type delim = streambuf::eof)
|
n個の文字を読み飛ばします。
途中で文字'delim'を検出したら、読み飛ばし処理を中止します。
リターン値は*thisです。
次の入力可能な入力文字を求めます。
リターン値は次のとおりです。
ok_==falseの場合:streambuf::eof
ok_!=falseの場合:rdbuf()->sgetc()
istream& istream::read(char* s, streamsize n)
|
ok_!=falseの場合、サイズnの文字列を抽出し、sの指す記憶領域に格納します。
抽出した文字数がnと異なる場合、eofbitを設定します。
リターン値は*thisです。
istream& istream::read(signed char* s, streamsize n)
|
ok_!=falseの場合、サイズnの文字列を抽出し、sの指す記憶領域に格納します。
抽出した文字数がnと異なる場合、eofbitを設定します。
リターン値は*thisです。
istream& istream::read(unsigned char* s, streamsize n)
|
ok_!=falseの場合、サイズnの文字列を抽出し、sの指す記憶領域に格納します。
抽出した文字数がnと異なる場合、eofbitを設定します。
リターン値は*thisです。
streamsize istream::readsome(char* s, streamsize n)
|
サイズnの文字列を抽出し、sの指す記憶領域に格納します。
文字数がストリームサイズより大きければ、ストリームサイズ分格納します。
リターン値は、抽出した文字数です。
streamsize istream::readsome(signed char* s, streamsize n)
|
サイズnの文字列を抽出し、sの指す記憶領域に格納します。
文字数がストリームサイズより大きければ、ストリームサイズ分格納します。
リターン値は、抽出した文字数です。
streamsize istream::readsome(unsigned char* s, streamsize n)
|
サイズnの文字列を抽出し、sの指す記憶領域に格納します。
文字数がストリームサイズより大きければ、ストリームサイズ分格納します。
リターン値は、抽出した文字数です。
istream& istream::putback(char c)
|
文字cを入力ストリームに戻します。プットバックした文字がstreambuf::eofの場合は、badbitを設定します。
リターン値は*thisです。
istream& istream::unget()
|
入力ストリームのポインタをひとつ戻します。
抽出した文字がstreambuf::eofの場合、badbitを設定します。
リターン値は*thisです。
入力ストリームがあるかどうかを調べます。
この関数はstreambuf::pubsync()を呼び出します。
リターン値は次のとおりです。
入力ストリームがない場合:streambuf::eof
入力ストリームがある場合:0
pos_type istream::tellg()
|
入力ストリームの位置を調べます。
この関数はstreambuf::pubseekoff(0,cur,in)を呼び出します。
リターン値は次のとおりです。
ストリームの先頭からのオフセット
ただし、入力処理にエラーが発生した場合は-1
istream& istream::seekg(pos_type pos)
|
現在のストリームポインタからposだけ移動します。
この関数はstreambuf::pubseekpos(pos)を呼び出します。
リターン値は*thisです。
istream& istream::seekg(off_type off, ios_base::seekdir dir)
|
dirで指定された方法で入力ストリームの読み込み位置を移動します。
この関数はstreambuf::pubseekoff(off,dir)を呼び出します。
入力処理にエラーがある場合は処理は行いません。
リターン値は*thisです。
|
|
|
関数
|
istream& ws(istream& is)
|
空白類を読み飛ばします。
|
空白類を読み飛ばします。
リターン値はisです。
|
|
|
関数
|
istream& operator>>(istream& in, char* s)
|
文字列を抽出し、sの指す記憶領域に格納します。
|
istream& operator>>(istream& in, signed char* s)
|
istream& operator>>(istream& in, unsigned char* s)
|
istream& operator>>(istream& in, char& c)
|
文字を抽出し、cに格納します。
|
istream& operator>>(istream& in, singed char& c)
|
istream& operator>>(istream& in, unsigned char& c)
|
istream& operator>>(istream& in, char* s)
|
文字列を抽出し、sの指す記憶領域に格納します。
(フィールド幅-1)個の文字を格納したか、または入力ストリームにstreambuf::eofが現れたか、または次の入力可能な文字cがisspace(c)==1の場合、処理は終了します。格納文字数が0の場合はfailbitを設定します。
リターン値はinです。
istream& operator>>(istream& in, signed char* s)
|
文字列を抽出し、sの指す記憶領域に格納します。
(フィールド幅-1)個の文字を格納したか、または入力ストリームにstreambuf::eofが現れたか、または次の入力可能な文字cがisspace(c)==1の場合、処理は終了します。格納文字数が0の場合はfailbitを設定します。
リターン値はinです。
istream& operator>>(istream& in, unsigned char* s)
|
文字列を抽出し、sの指す記憶領域に格納します。
(フィールド幅-1)個の文字を格納したか、または入力ストリームにstreambuf::eofが現れたか、または次の入力可能な文字cがisspace(c)==1の場合、処理は終了します。格納文字数が0の場合はfailbitを設定します。
リターン値はinです。
istream& operator>>(istream& in, char& c)
|
文字を抽出し、cに格納します。
抽出入力がない場合、failbitを設定します。
リターン値はinです。
istream& operator>>(istream& in, singed char& c)
|
文字を抽出し、cに格納します。
抽出入力がない場合、failbitを設定します。
リターン値はinです。
istream& operator>>(istream& in, unsigned char& c)
|
文字を抽出し、cに格納します。
抽出入力がない場合、failbitを設定します。
リターン値はinです。
|
|
|
変数
|
ok_
|
出力可能状態か否かを意味します。
|
_ _ec2p_os
|
ostreamオブジェクトへのポインタです。
|
関数
|
sentry(ostream& os)
|
コンストラクタです。
|
~sentry()
|
デストラクタです。
|
operator bool()
|
ok_を参照します。
|
ostream::sentry::sentry(ostream& os)
|
内部クラスsentryのコンストラクタです。
good()が非0かつtie()が非0ならflush()を呼び出します。_ _ec2p_osにosを設定します。
ostream::sentry::~sentry()
|
内部クラスsentryのデストラクタです。
_ _ec2p_os->flags() & ios_base::unitbufが真なら、flush()を呼び出します。
ostream::sentry::operator bool()
|
ok_を参照します。
リターン値はok_です。
|
|
|
関数
|
ostream(streambuf* sbptr)
|
コンストラクタです。
|
virtual ~ostream()
|
デストラクタです。
|
ostream& operator<<(bool n)
|
nを出力ストリームに挿入します。
|
ostream& operator<<(short n)
|
ostream& operator<<(unsigned short n)
|
ostream& operator<<(int n)
|
ostream& operator<<(unsigned int n)
|
ostream& operator<<(long n)
|
ostream& operator<<(unsigned long n)
|
ostream& operator<<(long long n)
|
ostream& operator<<(unsigned long long n)
|
ostream& operator<<(float n)
|
ostream& operator<<(double n)
|
ostream& operator<<(long double n)
|
ostream& operator<<(void* n)
|
ostream& operator<<(streambuf* sbptr)
|
sbptrの出力列を出力ストリームに挿入します。
|
ostream& put(char c)
|
文字cを出力ストリームに挿入します。
|
ostream& write(
const char* s,
streamsize n)
|
sのn個の文字を出力ストリームに挿入します。
|
ostream& write(
const signed char* s,
streamsize n)
|
ostream& write(
const unsigned char* s,
streamsize n)
|
ostream& flush()
|
出力ストリームをフラッシュします。この関数はstreambuf::pubsync()を呼び出します。
|
pos_type tellp()
|
現在の書き込み位置を求めます。この関数はstreambuf::pubseekoff(0,cur,out)を呼び出します。
|
ostream& seekp(pos_type pos)
|
ストリームの先頭から現在の位置までのオフセットを求めます。現在のストリームポインタからposだけ移動します。この関数はstreambuf::pubseekpos(pos)を呼び出します。
|
ostream& seekp(off_type off, seekdir dir)
|
dirを基準として、ストリームの書き込み位置をoff分だけ移動します。この関数はstreambuf::pubseekoff(off,dir)を呼び出します。
|
ostream::ostream(streambuf* sbptr)
|
コンストラクタです。
ios(sbptr)を呼び出します。
virtual ostream::~ostream()
|
デストラクタです。
ostream& ostream::operator<<(bool n)
|
sentry::ok_==trueのとき、nを出力ストリームに挿入します。
sentry::ok_==falseのとき、failbitを設定します。
リターン値は*thisです。
ostream& ostream::operator<<(short n)
|
sentry::ok_==trueのとき、nを出力ストリームに挿入します。
sentry::ok_==falseのとき、failbitを設定します。
リターン値は*thisです。
ostream& ostream::operator<<(unsigned short n)
|
sentry::ok_==trueのとき、nを出力ストリームに挿入します。
sentry::ok_==falseのとき、failbitを設定します。
リターン値は*thisです。
ostream& ostream::operator<<(int n)
|
sentry::ok_==trueのとき、nを出力ストリームに挿入します。
sentry::ok_==falseのとき、failbitを設定します。
リターン値は*thisです。
ostream& ostream::operator<<(unsigned int n)
|
sentry::ok_==trueのとき、nを出力ストリームに挿入します。
sentry::ok_==falseのとき、failbitを設定します。
リターン値は*thisです。
ostream& ostream::operator<<(long n)
|
sentry::ok_==trueのとき、nを出力ストリームに挿入します。
sentry::ok_==falseのとき、failbitを設定します。
リターン値は*thisです。
ostream& ostream::operator<<(unsigned long n)
|
sentry::ok_==trueのとき、nを出力ストリームに挿入します。
sentry::ok_==falseのとき、failbitを設定します。
リターン値は*thisです。
ostream& ostream::operator<<(long long n)
|
sentry::ok_==trueのとき、nを出力ストリームに挿入します。
sentry::ok_==falseのとき、failbitを設定します。
リターン値は*thisです。
ostream& ostream::operator<<(unsigned long long n)
|
sentry::ok_==trueのとき、nを出力ストリームに挿入します。
sentry::ok_==falseのとき、failbitを設定します。
リターン値は*thisです。
ostream& ostream::operator<<(float n)
|
sentry::ok_==trueのとき、nを出力ストリームに挿入します。
sentry::ok_==falseのとき、failbitを設定します。
リターン値は*thisです。
ostream& ostream::operator<<(double n)
|
sentry::ok_==trueのとき、nを出力ストリームに挿入します。
sentry::ok_==falseのとき、failbitを設定します。
リターン値は*thisです。
ostream& ostream::operator<<(long double n)
|
sentry::ok_==trueのとき、nを出力ストリームに挿入します。
sentry::ok_==falseのとき、failbitを設定します。
リターン値は*thisです。
ostream& ostream::operator<<(void* n)
|
sentry::ok_==trueのとき、nを出力ストリームに挿入します。
sentry::ok_==falseのとき、failbitを設定します。
リターン値は*thisです。
ostream& ostream::operator<<(streambuf* sbptr)
|
sentry::ok_==trueのとき、sbptrの出力列を出力ストリームに挿入します。
sentry::ok_==falseのとき、failbitを設定します。
リターン値は*thisです。
ostream& ostream::put(char c)
|
sentry::ok_==trueかつrdbuf()->sputc(c)!=streambuf::eofのとき、cを出力ストリームに挿入します。
上記以外のとき、badbitを設定します。
リターン値は*thisです。
ostream& ostream::write(const char* s, streamsize n)
|
sentry::ok_==trueかつrdbuf()->sputn(s, n)==nのとき、sのn個の文字を出力ストリームに挿入します。
上記以外のとき、badbitを設定します。
リターン値は*thisです。
ostream& ostream::write(const signed char* s, streamsize n)
|
sentry::ok_==trueかつrdbuf()->sputn(s, n)==nのとき、sのn個の文字を出力ストリームに挿入します。
上記以外のとき、badbitを設定します。
リターン値は*thisです。
ostream& ostream::write(const unsigned char* s, streamsize n)
|
sentry::ok_==trueかつrdbuf()->sputn(s, n)==nのとき、sのn個の文字を出力ストリームに挿入します。
上記以外のとき、badbitを設定します。
リターン値は*thisです。
ostream& ostream::flush()
|
出力ストリームをフラッシュします。
この関数はstreambuf::pubsync()を呼び出します。
リターン値は*thisです。
pos_type ostream::tellp()
|
現在の書き込み位置を求めます。
この関数はstreambuf::pubseekoff(0,cur,out)を呼び出します。
リターン値は次のとおりです。
現在のストリームの位置
ただし、処理中にエラーが発生した場合は-1
ostream& ostream::seekp(pos_type pos)
|
エラーがないとき、ストリームの先頭から現在の位置までのオフセットを求めます。
また、現在のストリームポインタからposだけ移動します。
この関数はstreambuf::pubseekpos(pos)を呼び出します。
リターン値は*thisです。
ostream& ostream::seekp(off_type off, seekdir dir)
|
エラーがないとき、dirを基準としてoff分ストリームの位置を移動します。
この関数はstreambuf::pubseekoff(off,dir)を呼び出します。
リターン値は*thisです。
|
|
|
関数
|
ostream& endl(ostream& os)
|
改行を挿入し、出力ストリームをフラッシュします。
|
ostream& ends(ostream& os)
|
ヌルコードを挿入します。
|
ostream& flush(ostream& os)
|
出力ストリームをフラッシュします。
|
ostream& endl(ostream& os)
|
ストリームに改行文字を挿入します。
出力ストリームをフラッシュします。この関数はflush()を呼び出します。
リターン値はosです。
ostream& ends(ostream& os)
|
出力ストリームにヌルコードを挿入します。
リターン値はosです。
ostream& flush(ostream& os)
|
出力ストリームをフラッシュします。この関数はstreambuf::sync()を呼び出します。
リターン値はosです。
|
|
|
関数
|
ostream& operator<<(ostream& os, char s)
|
sを出力ストリームに挿入します。
|
ostream& operator<<(ostream& os, signed char s)
|
ostream& operator<<(ostream& os, unsigned char s)
|
ostream& operator<<(ostream& os, const char* s)
|
ostream& operator<<(ostream& os, const singed char* s)
|
ostream& operator<<(ostream& os, const unsigned char* s)
|
ostream& operator<<(ostream& os, char s)
|
sentry::ok_==trueかつエラーがないとき、sを出力ストリームに挿入します。
上記以外のとき、failbitを設定します。
リターン値はosです。
ostream& operator<<(ostream& os, signed char s)
|
sentry::ok_==trueかつエラーがないとき、sを出力ストリームに挿入します。
上記以外のとき、failbitを設定します。
リターン値はosです。
ostream& operator<<(ostream& os, unsigned char s)
|
sentry::ok_==trueかつエラーがないとき、sを出力ストリームに挿入します。
上記以外のとき、failbitを設定します。
リターン値はosです。
ostream& operator<<(ostream& os, const char* s)
|
sentry::ok_==trueかつエラーがないとき、sを出力ストリームに挿入します。
上記以外のとき、failbitを設定します。
リターン値はosです。
ostream& operator<<(ostream& os, const singed char* s)
|
sentry::ok_==trueかつエラーがないとき、sを出力ストリームに挿入します。
上記以外のとき、failbitを設定します。
リターン値はosです。
ostream& operator<<(ostream& os, const unsigned char* s)
|
sentry::ok_==trueかつエラーがないとき、sを出力ストリームに挿入します。
上記以外のとき、failbitを設定します。
リターン値はosです。
|
|
|
関数
|
smanip resetiosflags(ios_base::fmtflags mask)
|
mask値で指定されたフラグをクリアします。
|
smanip setiosflags(ios_base::fmtflags mask)
|
書式フラグ(fmtfl)を設定します。
|
smanip setbase(int base)
|
出力時に用いる基数を設定します。
|
smanip setfill(char c)
|
詰め文字(fillch)を設定します。
|
smanip setprecision(int n)
|
精度(prec)を設定します。
|
smanip setw(int n)
|
フィールド幅(wide)を設定します。
|
smanip resetiosflags(ios_base::fmtflags mask)
|
mask値で指定されたフラグをクリアします。
リターン値は、入出力対象のオブジェクトです。
smanip setiosflags(ios_base::fmtflags mask)
|
書式フラグ(fmtfl)を設定します。
リターン値は、入出力対象のオブジェクトです。
出力時に用いる基数を設定します。
リターン値は、入出力対象のオブジェクトです。
詰め文字(fillch)を設定します。
リターン値は、入出力対象のオブジェクトです。
smanip setprecision(int n)
|
精度(prec)を設定します。
リターン値は、入出力対象のオブジェクトです。
フィールド幅(wide)を設定します。
リターン値は、入出力対象のオブジェクトです。
istream, ostreamのオブジェクトの初期化時にstreambufのかわりにmystrbufクラスのオブジェクトへのポインタを使うことにより入出力ストリームが使用可能になります。
クラスの派生関係は次のようになります。矢印は、派生クラスから基底クラスを参照していることを示します。
|
|
|
変数
|
_file_Ptr
|
ファイルポインタです。
|
関数
|
mystrbuf)
|
コンストラクタです。streambufバッファの初期化を行います。
|
mystrbuvoid* ptr)
|
virtual ~mystrbuf()
|
デストラクタです。
|
void* myfptr) const
|
FILE型構造体へのポインタを返します。
|
mystrbuf* openconst char* filename,
int mode)
|
ファイル名とモードを指定して、ファイルをオープンします。
|
mystrbuf* close()
|
ファイルのクローズを行います。
|
virtual streambuf* setbuf(char* s,
streamsize n)
|
ストリーム入出力用のバッファを確保します。
|
virtual pos_type seekoff(
off_type off,
ios_base::seekdir way,
ios_base::openmode =
(ios_base::openmode)
(ios_base::in | ios_base::out))
|
ストリームポインタの位置を変えます。
|
virtual pos_type seekpos(
pos_type sp,
ios_base::openmode =
(ios_base::openmode)
(ios_base::in | ios_base::out))
|
ストリームポインタの位置を変えます。
|
virtual int sync()
|
ストリームをフラッシュします。
|
virtual int showmanyc()
|
入力ストリームの有効な文字数を返します。
|
virtual int_type underflow()
|
ストリーム位置を動かさずに一文字読み込みます。
|
virtual int_type pbackfail(int_type c =
streambuf::eof)
|
cによって示される文字をプットバックします。
|
virtual int_type overflow(int_type c =
streambuf::eof)
|
cによって示される文字を挿入します。
|
void _Init(_f_type* fp)
|
初期処理です。
|
#include <istream>
#include <ostream>
#include <mystrbuf>
#include <string>
#include <new>
#include <stdio.h>
void main(void)
{
mystrbuf myfin(stdin);
mystrbuf myfout(stdout);
istream mycin(&myfin);
ostream mycout(&myfout);
int i;
short s;
long l;
char c;
string str;
mycin >> i >> s >> l >> c >> str;
mycout << "This is EC++ Library." << endl
<< i << s << l << c << str << endl;
return;
}
|