受保護的虛擬函式
<sstream>

std::basic_stringbuf::seekoff

pos_type seekoff (off_type off, ios_base::seekdir way,                  ios_base::openmode which = ios_base::in | ios_base::out);
將位置指標設定到相對位置
為引數 which 指定的位置指標設定新位置。此位置是根據 way 指定的起點計算的 off 個字元的偏移量。

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

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

引數

off
偏移量,相對於 way 引數。
成員型別 off_type 由 *字元特性* 確定:通常,它是已簽名整型 streamoff 的別名。
way
型別為 ios_base::seekdir 的物件,指示偏移量應用的來源。它可以取以下任意常量值:
偏移量相對於...
ios_base::beg字元序列的開頭
ios_base::cur根據引數 which,*讀取指標*(gptr)或*寫入指標*(pptr)的當前位置。
ios_base::end字元序列的末尾
which
確定受影響的是*位置指標*中的哪個:*輸入序列*、*輸出序列*或兩者都受影響。它是型別為 ios_base::openmode 的物件,對於此函式,它可以取以下任意重要的常量值組合:
受影響的位置指標
ios_base::in修改*讀取指標*(gptr
ios_base::out修改*寫入指標*(pptr
兩個指標可以同時被選擇,但如果兩者都被選擇且 wayios_base::cur,則函式會失敗。

返回值

成功時,如果在成員型別 pos_type 中可表示,則返回呼叫後位置指標指向的新絕對位置。
失敗時,或者上述情況不可能時,函式返回 pos_type(off_type(-1))
成員型別 pos_type 由*字元特性*決定:通常,它是一個 fpos 型別(例如 streampos),可以與整數型別相互轉換。

資料競爭

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

異常安全

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

另見