Namespaces
Variants
Views
Actions

std::basic_istream::seekg

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

Sets input position indicator of the current associated streambuf object. In case of failure, calls setstate(std::ios_base::failbit).

First, clears eofbit(since C++11), then constructs a sentry object with noskipws set to true. Afterwards, if fail()==true, calls setstate(failbit) and returns. Otherwise,

1) sets the input position indicator to absolute (relative to the beginning of the file) value pos. Specifically, executes rdbuf()->pubseekpos(pos, std::ios_base::in).

2) sets the input position indicator to position off, relative to position, defined by dir. Specifically, executes rdbuf()->pubseekoff(off, dir, std::ios_base::in).

Contents

[edit] Parameters

pos - absolute position to set the input position indicator to.
off - relative position to set the input position indicator to.
dir - defines base position to apply the relative offset to. It can be one of the following constants:
Constant Explanation
beg the beginning of a stream
end the ending of a stream
cur the current position of stream position indicator

[edit] Return value

*this

[edit] Example

#include <iostream>
#include <string>
#include <sstream>
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';
}

Output:

word1 = Hello,
word2 = Hello,

[edit] See also

returns the input position indicator
(public member function) [edit]
returns the output position indicator
(public member function of std::basic_ostream) [edit]
sets the output position indicator
(public member function of std::basic_ostream) [edit]