std::basic_ostream<CharT,Traits>::seekp
basic_ostream& seekp( pos_type pos ); | (1) | |
basic_ostream& seekp( off_type off, std::ios_base::seekdir dir ); | (2) |
Устанавливает указатель позиции вывода текущего связанного streambuf объекта.
| Ведёт себя как UnformattedOutputFunction (кроме фактического выполнения вывода). После построения и проверки объекта-стражи, | (с 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>) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/basic_ostream/seekp