std::basic_istream<CharT,Traits>::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) (pubseekpos, in turn, calls seekpos of the specific buffer, such as filebuf::seekpos, stringbuf::seekpos, or strstreambuf::seekpos)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 (positive or negative) 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:
|
Return value
*this
Exceptions
If an internal operation throws an exception, it is caught and badbit is set. If exceptions() is set for badbit
, the exception is rethrown.
Notes
seekg(n) is not necessarily equivalent to seekg(n, ios::beg).
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
returns the input position indicator (public member function) | |
returns the output position indicator (public member function of std::basic_ostream<CharT,Traits> ) | |
sets the output position indicator (public member function of std::basic_ostream<CharT,Traits> ) | |
invokes seekpos() (public member function of std::basic_streambuf<CharT,Traits> ) | |
[virtual] |
repositions the file position, using absolute addressing (virtual protected member function of std::basic_filebuf<CharT,Traits> ) |
[virtual] |
repositions the next pointer in the input sequence, output sequence, or both using absolute addressing (virtual protected member function of std::basic_stringbuf<CharT,Traits,Allocator> ) |
[virtual] |
repositions the next pointer in the input sequence, output sequence, or both using absolute addressing (virtual protected member function of std::strstreambuf ) |
invokes seekoff() (public member function of std::basic_streambuf<CharT,Traits> ) | |
[virtual] |
repositions the file position, using relative addressing (virtual protected member function of std::basic_filebuf<CharT,Traits> ) |
[virtual] |
repositions the next pointer in the input sequence, output sequence, or both, using relative addressing (virtual protected member function of std::basic_stringbuf<CharT,Traits,Allocator> ) |
[virtual] |
repositions the next pointer in the input sequence, output sequence, or both, using relative addressing (virtual protected member function of std::strstreambuf ) |