Namespaces
Variants

std::basic_filebuf<CharT,Traits>:: pbackfail

From cppreference.net
protected :
virtual int_type pbackfail ( int_type c = Traits :: eof ( ) )

この保護仮想関数は、公開関数 basic_streambuf::sungetc および basic_streambuf::sputbackc によって呼び出されます(これらは、さらに basic_istream::unget および basic_istream::putback によって呼び出されます)。

1) 呼び出し元はget領域が1文字分バックアップされることを要求しています(引数なしで pbackfail() が呼び出される場合)。この場合、この関数はファイルを1バイト前から再読み込みし、 basic_streambuf::gptr() をデクリメントします(例: gbump ( - 1 ) を呼び出すことによって)。
2) 呼び出し元が、以前に取得した文字とは異なる文字を戻そうとする場合( pbackfail() が戻す必要のある文字を引数として呼び出される)、この場合
a) まず、プットバック位置が存在するかどうかをチェックし、存在しない場合は、1バイト前からファイルの再読み取りを開始してゲット領域をバックアップします。
a) 次に、プットバック位置にある文字をチェックします。そこに保持されている文字が既に c と等しい場合( Traits :: eq ( to_char_type ( c ) , gptr ( ) [ - 1 ] ) によって判定される)、単に basic_streambuf::gptr() をデクリメントします。
b) それ以外の場合、バッファが自身のget領域を変更することが許可されている場合、 basic_streambuf::gptr() をデクリメントし、調整後のgptr()が指す位置に c を書き込みます。

この関数はファイルを決して変更せず、メモリバッファのget領域のみを変更します。

ファイルが開かれていない場合( is_open ( ) == false )、この関数は直ちに Traits :: eof ( ) を返します。

目次

パラメータ

c - 格納する文字、またはgetエリアのバックアップを要求することを示すTraits::eof()

戻り値

c 成功時は、ただし c Traits :: eof ( ) であった場合を除き、その場合 Traits :: not_eof ( c ) が返されます。

Traits :: eof ( ) 失敗時に返されます。

関連項目

[virtual]
入力シーケンスに文字を戻し、入力シーケンスを変更する可能性がある
( std::basic_streambuf<CharT,Traits> の仮想保護メンバ関数)
入力シーケンスの次のポインタを1つ戻す
( std::basic_streambuf<CharT,Traits> の公開メンバ関数)
入力シーケンスに1文字を戻す
( std::basic_streambuf<CharT,Traits> の公開メンバ関数)
文字の抽出を取り消す
( std::basic_istream<CharT,Traits> の公開メンバ関数)
入力ストリームに文字を戻す
( std::basic_istream<CharT,Traits> の公開メンバ関数)