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 メンバ関数) |