名前空間
変種
操作

std::basic_streambuf<CharT,Traits>::pbump

From cppreference.com
< cpp‎ | io‎ | basic streambuf
 
 
 
 
protected:
void pbump( int count );

書き込みポインタ (pptr()) を count 文字だけ移動させます。count は正または負の値をとることができます。ポインタを書き込み領域 [pbase()epptr()) の外へ移動させるチェックは行われません。

ポインタが進められた後に、書き込み領域を関連付けられた文字シーケンスにフラッシュするために overflow() が呼び出された場合、その効果は、未定義の値を持つ追加の count 文字が出力されることになります。

目次

[編集] パラメータ

count - 書き込みポインタに追加する数値

[編集] 戻り値

(なし)

[編集] 注意

この関数は int を受け取るため、std::numeric_limits<int>::max() 文字より大きなバッファを操作することはできません (LWG issue 255)。

[編集]

#include <fstream>
#include <iostream>
#include <string>
 
struct showput_streambuf : std::filebuf
{
    using std::filebuf::pbump; // expose protected
    std::string showput() const
    {
        return std::string(pbase(), pptr());
    }
};
 
int main()
{
    showput_streambuf mybuf;
    mybuf.open("test.txt", std::ios_base::out);
    std::ostream str(&mybuf);
    str << "This is a test" << std::flush << "1234";
    std::cout << "The put area contains: " << mybuf.showput() << '\n';
    mybuf.pbump(10);
    std::cout << "after pbump(10), it contains " << mybuf.showput() << '\n';
}

出力

The put area contains: 1234
after pbump(10), it contains 1234 is a test

[編集] 関連項目

入力シーケンスの次のポインタを進める
(protected メンバ関数) [編集]
English 日本語 中文(简体) 中文(繁體)