seekp()和seekg()函数简单的应用

avatar
作者
筋斗云
阅读量:6

seekp()和seekg()函数是C++中的流定位函数,用于在流中定位读写位置。

seekp()函数用于定位输出流的写入位置,seekg()函数用于定位输入流的读取位置。

两个函数的参数是一个偏移量,用于指定相对于特定位置的位置。偏移量可以是正数、负数或零。

seekp()函数有两个参数,第一个参数是偏移量,第二个参数是指定开始位置的标志。开始位置标志有三个选项:

  • ios::beg:相对于流的起始位置
  • ios::cur:相对于当前位置
  • ios::end:相对于流的末尾位置

seekg()函数的参数和seekp()函数相同。

下面是seekp()和seekg()函数的简单应用示例:

#include <iostream> #include <fstream>  int main() {    std::ofstream outputFile("example.txt");     // 写入数据到文件    outputFile << "Hello, World!" << std::endl;    outputFile << "This is a test.";     // 移动写入位置到文件起始位置    outputFile.seekp(0, std::ios::beg);     // 再次写入数据到文件    outputFile << "New data.";     // 关闭文件    outputFile.close();     std::ifstream inputFile("example.txt");     // 移动读取位置到文件末尾    inputFile.seekg(0, std::ios::end);     // 获取文件大小    std::streampos fileSize = inputFile.tellg();     std::cout << "File size: " << fileSize << " bytes" << std::endl;     // 关闭文件    inputFile.close();     return 0; } 

以上示例中,首先创建一个输出文件流outputFile,写入一些数据到文件中。然后使用seekp()函数将写入位置移动到文件起始位置,并再次写入新的数据。

接下来创建一个输入文件流inputFile,使用seekg()函数将读取位置移动到文件末尾,并使用tellg()函数获取文件的大小。

最后关闭文件流。

输出结果为:

File size: 16 bytes 

这个例子演示了如何使用seekp()seekg()函数在文件中定位读写位置。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!