void pbump( int count ); |
Repositions the put pointer (pptr()
) by count
characters, where count
may be positive or negative. No checks are done for moving the pointer outside the put area [pbase(), epptr())
.
If the pointer is advanced and then overflow()
is called to flush the put area to the associated character sequence, the effect is that extra count
characters with undefined values are output.
count | - | number to add to the put pointer |
(none).
Because this function takes an int
, it cannot manipulate buffers larger than std::numeric_limits<int>::max()
characters (LWG 255).
#include <iostream> #include <string> #include <fstream> 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'; }
Output:
The put area contains: 1234 after pbump(10), it contains 1234 is a test
advances the next pointer in the input sequence (protected member function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/io/basic_streambuf/pbump