Namespaces
Variants

std::basic_istream<CharT,Traits>:: seekg

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

Setzt die Eingangspositionsanzeige des aktuell assoziierten streambuf Objekts.

Bevor irgendetwas anderes durchgeführt wird, seekg löscht eofbit . (seit C++11)

seekg verhält sich wie UnformattedInputFunction , außer dass gcount() nicht beeinflusst wird. Nach dem Konstruieren und Überprüfen des Sentry-Objekts,

1) Wenn fail ( ) ! = true , setzt die Eingabepositionsanzeige auf den absoluten Wert (relativ zum Dateianfang) pos . Genauer gesagt, führt rdbuf ( ) - > pubseekpos ( pos, std:: ios_base :: in ) aus ( pubseekpos ruft seinerseits seekpos des spezifischen Puffers auf, wie basic_filebuf::seekpos , basic_stringbuf::seekpos , oder strstreambuf::seekpos ). Im Fehlerfall ruft setstate ( std:: ios_base :: failbit ) auf.
2) Falls fail ( ) ! = true , setzt die Eingabepositionsanzeige auf Position off , relativ zur Position, definiert durch dir . Führt spezifisch rdbuf ( ) - > pubseekoff ( off, dir, std:: ios_base :: in ) aus. Im Fehlerfall ruft setstate ( std:: ios_base :: failbit ) auf.

Inhaltsverzeichnis

Parameter

pos - absolute Position, auf die der Eingabe-Positionsanzeiger gesetzt werden soll
off - relative Position (positiv oder negativ), auf die der Eingabe-Positionsanzeiger 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

Rückgabewert

* this

Exceptions

failure if an error occurred (the error state flag is not goodbit ) and exceptions() is set to throw for that state.

Wenn eine interne Operation eine Ausnahme auslöst, wird diese abgefangen und badbit wird gesetzt. Wenn exceptions() für badbit gesetzt ist, wird die Ausnahme erneut ausgelöst.

Hinweise

seekg(n) ist nicht notwendigerweise äquivalent zu seekg(n, ios::beg) . std:: basic_ifstream erfordert beispielsweise, dass die absolute Position n von tellg() stammt.

Beispiel

#include <iostream>
#include <sstream>
#include <string>
int main()
{
    std::string str = "Hello, world";
    std::istringstream in(str);
    std::string word1, word2;
    in >> word1;
    in.seekg(0); // rewind
    in >> word2;
    std::cout << "word1 = " << word1 << '\n'
              << "word2 = " << word2 << '\n';
}

Ausgabe:

word1 = Hello,
word2 = Hello,

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 bei Fehler
LWG 136 C++98 seekg konnte den Ausgabestream setzen setzt nur den Eingabestream
LWG 537 C++98 der Typ von off war off_type& korrigiert zu off_type

Siehe auch

gibt die Eingangspositionsanzeige zurück
(öffentliche Elementfunktion)
gibt die Ausgangspositionsanzeige zurück
(öffentliche Elementfunktion von std::basic_ostream<CharT,Traits> )
setzt die Ausgangspositionsanzeige
(öffentliche Elementfunktion von std::basic_ostream<CharT,Traits> )
ruft seekpos ( ) auf
(öffentliche Elementfunktion von std::basic_streambuf<CharT,Traits> )
[virtual]
positioniert die Dateiposition neu, unter Verwendung absoluter Adressierung
(virtuelle geschützte Elementfunktion von std::basic_filebuf<CharT,Traits> )
[virtual]
positioniert den nächsten Zeiger in der Eingabesequenz, Ausgabesequenz oder beiden neu, unter Verwendung absoluter Adressierung
(virtuelle geschützte Elementfunktion von std::basic_stringbuf<CharT,Traits,Allocator> )
[virtual]
positioniert den nächsten Zeiger in der Eingabesequenz, Ausgabesequenz oder beiden neu, unter Verwendung absoluter Adressierung
(virtuelle geschützte Elementfunktion von std::strstreambuf )
ruft seekoff ( ) auf
(öffentliche Elementfunktion von std::basic_streambuf<CharT,Traits> )
[virtual]
positioniert die Dateiposition neu, unter Verwendung relativer Adressierung
(virtuelle geschützte Elementfunktion von std::basic_filebuf<CharT,Traits> )
[virtual]
positioniert den nächsten Zeiger in der Eingabesequenz, Ausgabesequenz oder beiden neu, unter Verwendung relativer Adressierung
(virtuelle geschützte Elementfunktion von std::basic_stringbuf<CharT,Traits,Allocator> )
[virtual]
positioniert den nächsten Zeiger in der Eingabesequenz, Ausgabesequenz oder beiden neu, unter Verwendung relativer Adressierung
(virtuelle geschützte Elementfunktion von std::strstreambuf )