受保護的虛擬成員函式
<sstream>

std::basic_stringbuf::seekpos

pos_type seekpos (pos_type pos, ios_base::openmode which = ios_base::in | ios_base::out);
將位置指標設定為絕對位置
將由引數 which 指定的位置指標設定為新的絕對位置 pos

如果 which 包含 ios_base::in,則會影響讀指標gptr),如果 which 包含 ios_base::out,則會影響寫指標pptr)。一次呼叫可以同時影響兩個位置指標。

此虛擬函式由公共成員 basic_streambuf::pubseekpos 呼叫。

引數

pos
位置指標的新絕對位置。
pos_type 成員型別由字元特性確定:通常,它是可以與整數型別相互轉換的 fpos 型別(例如 streampos)。
which
確定受影響的位置指標:讀指標、寫指標或兩者。它是 ios_base::openmode 型別的物件,對於此函式,它可以接受以下有效常量值的任何組合:
受影響的位置指標
ios_base::in修改讀指標gptr
ios_base::out修改寫指標pptr
可以同時選擇兩個指標。

返回值

成功時,返回 pos
失敗時,函式返回 pos_type(off_type(-1))
pos_type 成員型別由字元特性確定:通常,它是可以與整數型別相互轉換的 fpos 型別(例如 streampos)。

資料競爭

修改 basic_stringbuf 物件。
併發訪問同一物件可能導致資料爭用。

異常安全

基本保證:如果丟擲異常,物件處於有效狀態。

另見