名前空間
変種
操作

std::basic_ostream::seekp

提供: cppreference.com
< 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 のように動作します。 sentry オブジェクトの構築および確認の後、

(C++11およびそれ以降)
1) rdbuf()->pubseekpos(pos, std::ios_base::out) を呼ぶことによって、絶対 (ファイルの先頭からの相対) 位置 pos に出力位置指示子を設定します。 呼び出しが (pos_type)-1 を返した場合は setstate(failbit) を実行します。
2) rdbuf()->pubseekoff(off, dir, std::ios_base::out) を呼ぶことによって、 dir からの相対オフセット off に出力位置指示子を設定します。
エラーを報告しません。 (C++14以前)
呼び出しが (pos_type)-1 を返した場合は setstate(failbit) を実行します。 (C++14およびそれ以降)

目次

[編集] 引数

pos - 出力位置指示子を設定する絶対位置
off - 出力位置指示子を設定する相対位置
dir - 相対オフセットを適用するベースの位置を定義します。 以下の定数のいずれかを指定できます。
定数 説明
beg ストリームの先頭
end ストリームの終端
cur ストリームの位置指示子の現在位置

[編集] 戻り値

*this

[編集] 例外

1) 失敗した場合は exceptions() & failbit != 0 であれば std::ios_base::failure を投げるかもしれません。
2)
rdbuf()->pubseekoff() が例外を投げない限り例外を投げません。 (C++14以前)
失敗した場合は exceptions() & failbit != 0 であれば std::ios_base::failure を投げるかもしれません。 (C++14およびそれ以降)

[編集]

#include <sstream>
#include <iostream>
 
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!

[編集] 関連項目

出力位置指示子を返します
(パブリックメンバ関数) [edit]
入力位置指示子を返します
(std::basic_istreamのパブリックメンバ関数) [edit]
入力位置指示子を設定します
(std::basic_istreamのパブリックメンバ関数) [edit]