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) | |
`, `
`, `
Устанавливает индикатор позиции ввода текущего связанного
streambuf
объекта.
Перед выполнением любых других действий,
seekg
сбрасывает
eofbit
.
|
(начиная с C++11) |
seekg
ведёт себя как
UnformattedInputFunction
, за исключением того, что
gcount()
не затрагивается. После создания и проверки объекта-стража,
Содержание |
Параметры
| pos | - | абсолютная позиция для установки указателя позиции ввода | ||||||||
| off | - | относительная позиция (положительная или отрицательная) для установки указателя позиции ввода | ||||||||
| dir | - |
определяет базовую позицию для применения относительного смещения. Может быть одной из следующих констант:
|
Возвращаемое значение
* this
Исключения
Если внутренняя операция выбрасывает исключение, оно перехватывается и
badbit
устанавливается. Если
exceptions()
установлен для
badbit
, исключение выбрасывается повторно.
Примечания
seekg(n) не обязательно эквивалентно seekg(n, ios::beg) . std:: basic_ifstream , например, требует, чтобы абсолютная позиция n была получена из tellg() .
Пример
#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'; }
Вывод:
word1 = Hello, word2 = Hello,
Отчеты о дефектах
Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 129 | C++98 | не было способа указать на ошибку |
устанавливает
failbit
при ошибке
|
| LWG 136 | C++98 |
seekg
мог устанавливать выходной поток
|
устанавливает только входной поток |
| LWG 537 | C++98 |
тип
off
был
off_type&
|
исправлен на
off_type
|
Смотрите также
|
возвращает индикатор позиции ввода
(публичная функция-член) |
|
|
возвращает индикатор позиции вывода
(публичная функция-член
std::basic_ostream<CharT,Traits>
)
|
|
|
устанавливает индикатор позиции вывода
(публичная функция-член
std::basic_ostream<CharT,Traits>
)
|
|
|
вызывает
seekpos
(
)
(публичная функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
|
[virtual]
|
перемещает позицию в файле, используя абсолютную адресацию
(виртуальная защищенная функция-член
std::basic_filebuf<CharT,Traits>
)
|
|
[virtual]
|
перемещает следующий указатель во входной последовательности, выходной последовательности или в обеих, используя абсолютную адресацию
(виртуальная защищенная функция-член
std::basic_stringbuf<CharT,Traits,Allocator>
)
|
|
[virtual]
|
перемещает следующий указатель во входной последовательности, выходной последовательности или в обеих, используя абсолютную адресацию
(виртуальная защищенная функция-член
std::strstreambuf
)
|
|
вызывает
seekoff
(
)
(публичная функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
|
[virtual]
|
перемещает позицию в файле, используя относительную адресацию
(виртуальная защищенная функция-член
std::basic_filebuf<CharT,Traits>
)
|
|
[virtual]
|
перемещает следующий указатель во входной последовательности, выходной последовательности или в обеих, используя относительную адресацию
(виртуальная защищенная функция-член
std::basic_stringbuf<CharT,Traits,Allocator>
)
|
|
[virtual]
|
перемещает следующий указатель во входной последовательности, выходной последовательности или в обеих, используя относительную адресацию
(виртуальная защищенная функция-член
std::strstreambuf
)
|