protected virtual member function
<fstream>
pos_type seekoff (off_type off, ios_base::seekdir way, ios_base::openmode which = ios_base::in | ios_base::out);
設定內部位置到相對位置
引數
- off
- 偏移量,相對於 way 引數。
如果流使用可變寬度或狀態相關的 encoding,則 off 必須為零(否則函式將失敗)。
成員型別 off_type 由 *字元特性* 確定:通常,它是已簽名整型 streamoff 的別名。
- way
- 型別為 ios_base::seekdir 的物件,指示偏移量應用的來源。它可以取以下任意常量值:
值 | 偏移量相對於... |
ios_base::beg | 檔案開頭 |
ios_base::cur | 輸入位置或輸出位置的當前位置,具體取決於引數 which。
|
ios_base::end | 檔案結尾 |
- which
- 確定受影響的是哪個內部位置指標:輸入位置、輸出位置或兩者。它是一個 ios_base::openmode 型別的物件,對於此函式,它可以接受以下任意組合的有效常量值。
值 | 受影響的位置指標 |
ios_base::in | 修改輸入位置及其相應的獲取指標(gptr)。 |
ios_base::out | 修改輸出位置及其相應的 put 指標(pptr)。 |
可以同時選擇兩個位置,但如果當 way 為 ios_base::cur 時同時選擇兩者,則函式將失敗。
返回值
成功時,它返回呼叫後內部位置指標指向的新絕對位置(如果能表示為成員型別 pos_type 的值)。
失敗時,或者無法做到上述情況時,該函式返回 pos_type(off_type(-1))
。
成員型別 pos_type 由字元特性確定:通常,它是一個 fpos 型別(例如 streampos),該型別可以轉換為/從整數型別轉換。
異常安全
基本保證:如果丟擲異常,*檔案流緩衝區*處於有效狀態。