std::basic_istream<CharT,Traits>:: seekg
basic_istream
&
seekg
(
pos_type pos
)
;
|
(1) | |
basic_istream
&
seekg
(
off_type off,
std::
ios_base
::
seekdir
dir
)
;
|
(2) | |
Sets input position indicator of the current associated
streambuf
object.
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,
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) . std:: basic_ifstream , for example, requires the absolute position n to come from tellg() .
Example
#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'; }
Output:
word1 = Hello, word2 = Hello,
Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|---|---|---|
LWG 129 | C++98 | there was no way to indicate a failure |
sets
failbit
on failure
|
LWG 136 | C++98 |
seekg
could set the output stream
|
only sets the input stream |
LWG 537 | C++98 |
the type of
off
was
off_type&
|
corrected to
off_type
|
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
)
|