std::basic_ostream<CharT,Traits>::seekp
Von cppreference.com
< cpp | io | basic ostream
| basic_ostream& seekp( pos_type pos ); |
(1) | |
| basic_ostream& seekp( off_type off, std::ios_base::seekdir dir ); |
(2) | |
Setzt den Ausgabepositionszeiger des zugehörigen `streambuf`-Objekts.
|
Verhält sich wie eine UnformattedOutputFunction (außer dass keine tatsächliche Ausgabe erfolgt). Nach der Konstruktion und Überprüfung des Sentry-Objekts, |
(seit C++11) |
1) wenn fail() != true, wird der Ausgabepositionszeiger auf den absoluten Wert (relativ zum Dateianfang) pos gesetzt, indem rdbuf()->pubseekpos(pos, std::ios_base::out) aufgerufen wird. Im Fehlerfall wird setstate(std::ios_base::failbit) aufgerufen.
2) wenn fail() != true, wird der Ausgabepositionszeiger auf den Offset off relativ zu dir gesetzt, indem rdbuf()->pubseekoff(off, dir, std::ios_base::out) aufgerufen wird. Im Fehlerfall wird setstate(std::ios_base::failbit) aufgerufen.
Inhalt |
[edit] Parameter
| pos | - | absolute Position, auf die der Ausgabepositionszeiger gesetzt werden soll | ||||||||
| off | - | relative Position (positiv oder negativ), auf die der Ausgabepositionszeiger gesetzt werden soll | ||||||||
| dir | - | definiert die Basisposition, auf die der relative Offset angewendet wird. Es kann eine der folgenden Konstanten sein
|
[edit] Rückgabewert
*this
[edit] Ausnahmen
[edit] Beispiel
Führen Sie diesen Code aus
#include <iostream> #include <sstream> int main() { std::ostringstream os("hello, world"); os.seekp(7); os << 'W'; os.seekp(0, std::ios_base::end); os << '!'; os.seekp(0); os << 'H'; std::cout << os.str() << '\n'; }
Ausgabe
Hello, World!
[edit] Fehlerberichte
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 129 | C++98 | Es gab keine Möglichkeit, einen Fehler anzuzeigen | Setzt `failbit` im Fehlerfall |
| LWG 136 | C++98 | seekp konnte den Eingabestrom setzen |
setzt nur den Ausgabestrom |
| LWG 537 | C++98 | 1. der Typ von pos war pos_type&2. der Typ von off war off_type& |
1. korrigiert zu pos_type2. korrigiert zu off_type |
| LWG 2341 | C++98 | die Lösung von LWG-Problem 129 für Überladung (2) wurde entfernt | wiederhergestellt |
[edit] Siehe auch
| gibt den Ausgabepositionsindikator zurück (public member function) | |
| gibt den Eingabepositionsindikator zurück (public member function of std::basic_istream<CharT,Traits>) | |
| setzt den Eingabepositionsindikator (public member function of std::basic_istream<CharT,Traits>) |