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
Führen Sie diesen Code aus
#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) |