# std::basic_istream::seekg

From cppreference.com
< cpp‎ | io‎ | basic istream

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).

Before doing anything else, `seekg` clears `eofbit`. | (since C++11)

`seekg` behaves as `UnformattedInputFunction`, except that gcount() is not affected. After constructing and checking the sentry object,

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).

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

### Return value

*this

### Exceptions

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

If an internal operation throws an exception, it is caught and badbit is set. If exceptions() is set for `badbit`, the exception is rethrown.

### Example

Run this code

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

### See also

tellg | returns the input position indicator (public member function)
tellp | returns the output position indicator (public member function of `std::basic_ostream`)
seekp | sets the output position indicator (public member function of `std::basic_ostream`)

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/io/basic_istream/seekg&oldid=62009"