Namespaces
Variants

std::basic_ostream<CharT,Traits>:: seekp

From cppreference.net
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 - определяет базовую позицию для применения относительного смещения. Может быть одной из следующих констант:
Константа Объяснение
beg начало потока
end конец потока
cur текущая позиция индикатора позиции потока

Возвращаемое значение

* this

Исключения

1,2) Может выбросить std::ios_base::failure в случае ошибки, если exceptions ( ) & failbit ! = 0 .

Пример

#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> )