Namespaces
Variants

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

From cppreference.net
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

Смотрите также

перемещает указатель следующего элемента во входной последовательности
(защищённая функция-член)