Namensräume
Varianten
Aktionen

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
Konstante Erklärung
beg der Anfang eines Streams
end das Ende eines Streams
cur die aktuelle Position des Stream-Positionsanzeigers

[edit] Rückgabewert

*this

[edit] Ausnahmen

1,2) Kann std::ios_base::failure im Fehlerfall auslösen, wenn exceptions() & failbit != 0.

[edit] 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!

[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_type
2. 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) [edit]
gibt den Eingabepositionsindikator zurück
(public member function of std::basic_istream<CharT,Traits>) [edit]
setzt den Eingabepositionsindikator
(public member function of std::basic_istream<CharT,Traits>) [edit]