Namensräume
Varianten
Aktionen

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

Von cppreference.com
< cpp‎ | io‎ | basic streambuf
 
 
 
 
protected:
void pbump( int count );

Positioniert den *Ausgabezeiger* (pptr()) um count Zeichen vorwärts, wobei count positiv oder negativ sein kann. Es werden keine Prüfungen durchgeführt, ob der Zeiger außerhalb des Ausgabe-Bereichs [pbase()epptr()) bewegt wird.

Wenn der Zeiger vorwärts bewegt wird und anschließend overflow() aufgerufen wird, um den Ausgabe-Bereich in die zugehörige Zeichensequenz zu spülen, ist das Ergebnis, dass zusätzliche count Zeichen mit undefinierten Werten ausgegeben werden.

Inhalt

[bearbeiten] Parameter

zählt - Zu addierende Anzahl zum Ausgabezeiger

[bearbeiten] Rückgabewert

(keine)

[bearbeiten] Hinweise

Da diese Funktion einen int entgegennimmt, kann sie keine Puffer manipulieren, die größer als std::numeric_limits<int>::max() Zeichen sind (LWG issue 255).

[bearbeiten] Beispiel

#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';
}

Ausgabe

The put area contains: 1234
after pbump(10), it contains 1234 is a test

[bearbeiten] Siehe auch

rückt den nächsten Zeiger in der Eingabesequenz vor
(geschützte Member-Funktion) [bearbeiten]