table of contents
std::basic_istream::seekg(3) | C++ Standard Libary | std::basic_istream::seekg(3) |
NAME¶
std::basic_istream::seekg - std::basic_istream::seekg
Synopsis¶
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.
defines base position to apply the relative offset to. It can be one of the
following constants:
dir - 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.
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¶
tellg returns the input position indicator
(public member function)
tellp returns the output position indicator
(public member function of std::basic_ostream<CharT,Traits>)
seekp sets the output position indicator
(public member function of std::basic_ostream<CharT,Traits>)
pubseekpos invokes seekpos()
(public member function of std::basic_streambuf<CharT,Traits>)
seekpos repositions the file position, using absolute addressing
[virtual] (virtual protected member function of
std::basic_filebuf<CharT,Traits>)
repositions the next pointer in the input sequence, output sequence, or
seekpos both using absolute addressing
[virtual] (virtual protected member function
of
std::basic_stringbuf<CharT,Traits,Allocator>)
seekpos repositions the next pointer in the input sequence, output
sequence, or
[virtual] both using absolute addressing
(virtual protected member function of std::strstreambuf)
pubseekoff invokes seekoff()
(public member function of
std::basic_streambuf<CharT,Traits>)
seekoff repositions the file position, using relative addressing
[virtual] (virtual protected member function of
std::basic_filebuf<CharT,Traits>)
repositions the next pointer in the input sequence, output sequence,
or
seekoff both, using relative addressing
[virtual] (virtual protected member
function of
std::basic_stringbuf<CharT,Traits,Allocator>)
seekoff repositions the next pointer in the input sequence, output
sequence, or
[virtual] both, using relative addressing
(virtual protected member function of
std::strstreambuf)
2022.07.31 | http://cppreference.com |