std::basic_ostream<CharT,Traits>:: seekp
From cppreference.net
<
cpp
|
io
|
basic ostream
|
basic_ostream
&
seekp
(
pos_type pos
)
;
|
(1) | |
|
basic_ostream
&
seekp
(
off_type off,
std::
ios_base
::
seekdir
dir
)
;
|
(2) | |
Устанавливает индикатор позиции вывода текущего связанного
streambuf
объекта.
|
Ведут себя как UnformattedOutputFunction (за исключением фактического выполнения вывода). После создания и проверки объекта-сторожа, |
(since C++11) |
1)
если
fail
(
)
!
=
true
, устанавливает индикатор позиции вывода в абсолютное (относительно начала файла) значение
pos
путем вызова
rdbuf
(
)
-
>
pubseekpos
(
pos,
std::
ios_base
::
out
)
. В случае неудачи вызывает
setstate
(
std::
ios_base
::
failbit
)
.
2)
если
fail
(
)
!
=
true
, устанавливает индикатор позиции вывода на смещение
off
относительно
dir
путем вызова
rdbuf
(
)
-
>
pubseekoff
(
off, dir,
std::
ios_base
::
out
)
. В случае неудачи вызывает
setstate
(
std::
ios_base
::
failbit
)
.
Содержание |
Параметры
| pos | - | абсолютная позиция для установки индикатора позиции вывода | ||||||||
| off | - | относительная позиция (положительная или отрицательная) для установки индикатора позиции вывода | ||||||||
| dir | - |
определяет базовую позицию для применения относительного смещения. Может быть одной из следующих констант:
|
Возвращаемое значение
* this
Исключения
Пример
Запустить этот код
#include <iostream> #include <sstream> int main() { std::ostringstream os("hello, world"); os.seekp(7); os << 'W'; os.seekp(0, std::ios_base::end); os << '!'; os.seekp(0); os << 'H'; std::cout << os.str() << '\n'; }
Вывод:
Hello, World!
Отчеты о дефектах
Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применяется к | Поведение в опубликованной версии | Корректное поведение |
|---|---|---|---|
| LWG 129 | C++98 | не было способа указать на ошибку |
устанавливает
failbit
при ошибке
|
| LWG 136 | C++98 |
seekp
мог устанавливать входной поток
|
устанавливает только выходной поток |
| LWG 537 | C++98 |
1. тип
pos
был
pos_type&
2. тип off был
off_type&
|
1. исправлено на
pos_type
2. исправлено на
off_type
|
| LWG 2341 | C++98 | решение LWG issue 129 для перегрузки (2) было удалено | восстановлено |
Смотрите также
|
возвращает индикатор позиции вывода
(публичная функция-член) |
|
|
возвращает индикатор позиции ввода
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
|
устанавливает индикатор позиции ввода
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|