std::basic_streambuf<CharT,Traits>::pbump
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
См. также
| перемещает указатель следующего символа в входной последовательности (защищённый член-функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/basic_streambuf/pbump