Namespaces
Variants

std::basic_ostream<CharT,Traits>:: seekp

From cppreference.net
basic_ostream & seekp ( pos_type pos ) ;
(1)
basic_ostream & seekp ( off_type off, std:: ios_base :: seekdir dir ) ;
(2)

Setzt die Ausgabepositionsanzeige des aktuell assoziierten streambuf -Objekts.

Verhält sich wie eine UnformattedOutputFunction (allerdings ohne tatsächlich Ausgabe durchzuführen). Nach dem Konstruieren und Überprüfen des Sentry-Objekts,

(since C++11)
1) Wenn fail ( ) ! = true , setzt die Ausgabepositionsanzeige auf den absoluten (relativ zum Dateianfang) Wert pos durch Aufruf von rdbuf ( ) - > pubseekpos ( pos, std:: ios_base :: out ) . Im Fehlerfall ruft setstate ( std:: ios_base :: failbit ) auf.
2) Falls fail ( ) ! = true , setzt die Ausgabepositionsanzeige auf Offset off relativ zu dir durch Aufruf von rdbuf ( ) - > pubseekoff ( off, dir, std:: ios_base :: out ) . Im Fehlerfall ruft setstate ( std:: ios_base :: failbit ) auf.

Inhaltsverzeichnis

Parameter

pos - Absolute Position, um die Ausgabepositionsanzeige zu setzen
off - Relative Position (positiv oder negativ), um die Ausgabepositionsanzeige zu setzen
dir - Definiert die Basisposition, auf die der relative Offset angewendet wird. Es kann eine der folgenden Konstanten sein:
Konstante Erklärung
beg Der Anfang eines Streams
end Das Ende eines Streams
cur Die aktuelle Position der Stream-Positionsanzeige

Rückgabewert

* this

Exceptions

1,2) Kann im Fehlerfall std::ios_base::failure werfen, falls exceptions ( ) & failbit ! = 0 .

Beispiel

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

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 129 C++98 es gab keine Möglichkeit, einen Fehler anzuzeigen setzt bei Fehler failbit
LWG 136 C++98 seekp konnte den Eingabestream setzen setzt nur den Ausgabestream
LWG 537 C++98 1. der Typ von pos war pos_type&
2. der Typ von off war off_type&
1. korrigiert zu pos_type
2. korrigiert zu off_type
LWG 2341 C++98 die Lösung von LWG Issue 129 für Überladung (2) wurde entfernt wiederhergestellt

Siehe auch

gibt die Ausgabepositionsanzeige zurück
(öffentliche Elementfunktion)
gibt die Eingabepositionsanzeige zurück
(öffentliche Elementfunktion von std::basic_istream<CharT,Traits> )
setzt die Eingabepositionsanzeige
(öffentliche Elementfunktion von std::basic_istream<CharT,Traits> )