seekp函数
时间: 2023-10-03 21:05:28 浏览: 51
`seekp` 是 C++ 中 `ofstream` 类的成员函数,用于将文件指针定位到文件中的特定位置,并在该位置写入数据。具体来说,它的作用是设置文件的写指针位置,这样在下一次写入数据时,就会从该位置开始写入。`seekp` 的语法如下:
```c++
ostream& seekp(streampos pos);
ostream& seekp(streamoff off, ios_base::seekdir way);
```
其中,`pos` 表示要设置的文件位置,类型为 `streampos`,`off` 表示偏移量,`way` 表示偏移的方向,可以是 `ios_base::beg`(从文件开头开始偏移),`ios_base::cur`(从当前位置开始偏移)或者 `ios_base::end`(从文件结尾开始偏移)。`seekp` 返回一个指向该流的引用,因此可以进行链式调用。
例如,以下代码将文件指针移动到文件开头,并写入一些数据:
```c++
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ofstream ofs("example.txt", ios::out | ios::binary);
ofs.write("Hello, world!", 13);
ofs.seekp(0);
ofs.write("Greetings!", 10);
ofs.close();
return 0;
}
```
执行后,文件内容将变为 `Greetings!ld!`。注意,如果要在中间位置写入数据,需要先将文件指针移动到该位置,然后再写入数据。