温馨提示×

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

小亿
266
2023-12-20 14:04:08
栏目: 编程语言

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()函数在文件中定位读写位置。

0