std::basic_istream<CharT,Traits>::seekg (3) - Linux Manuals

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


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


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


pos - absolute position to set the input position indicator to.
off - relative position to set the input position indicator to.
      defines base position to apply the relative offset to. It can be one of the following constants:

      Constant Explanation
dir - beg the beginning of a stream
      end the ending of a stream
      cur the current position of stream position indicator

Return value



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.


// 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';


  word1 = Hello,
  word2 = Hello,

See also

      returns the input position indicator
tellg (public member function)
      returns the output position indicator
tellp (public member function of std::basic_ostream<CharT,Traits>)
      sets the output position indicator
seekp (public member function of std::basic_ostream<CharT,Traits>)