std::basic_istream::seekg
性病:基本[医]IStream::Seekg
basic_istream& seekg( pos_type pos | | |
---|---|---|
basic_istream& seekg( off_type off, std::ios_base::seekdir dir | | |
设置当前关联的输入位置指示符。streambuf
对象。如果失败,呼叫setstate(
std::ios_base::failbit
)
...
Before doing anything else, seekg clears eofbit. | (since C++11) |
---|
seekg
表现为UnformattedInputFunction
,除了gcount()
不受影响。在构造和检查哨兵对象之后,
1%29将输入位置指示符设置为相对于文件%29值开头的绝对%28。pos.具体而言,执行rdbuf()->pubseekpos(pos,std::ios_base::in)...
2%29将输入位置指示器设置为位置。off相对于位置,由dir.具体而言,执行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. |
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 |
Constant | Explanation | |
beg | the beginning of a stream | |
end | the ending of a stream | |
cur | the current position of stream position indicator |
返回值
*this
...
例外
failure
如果发生错误%28,则错误状态标志不是goodbit
29%和exceptions()
将被抛向那个州。
如果内部操作抛出异常,则会捕获该操作,并且badbit
已经设定好了。如果exceptions()
设置为badbit
,异常将被重新抛出。
例
二次
#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,
二次
另见
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) |
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。