Spec-Zone.ru › C++

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 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

См. также

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

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/basic_streambuf/pbump

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API