std::basic_streambuf<CharT,Traits>::pbump
来自 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 问题 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
[编辑] 另请参阅
在输入序列中推进下一个指针 (受保护的成员函数) |