在C++中,可以使用fseek和ftell函数来控制文件指针的位置和获取当前文件指针的位置。下面是一个简单的示例代码,演示了如何使用fseek和ftell函数来实现文件读写操作:
#include <iostream>
#include <fstream>
int main() {
std::ifstream inputFile("input.txt", std::ios::binary);
if (!inputFile.is_open()) {
std::cerr << "Error opening input file." << std::endl;
return 1;
}
// 获取文件大小
inputFile.seekg(0, std::ios::end);
int fileSize = inputFile.tellg();
inputFile.seekg(0, std::ios::beg);
// 读取文件内容
char* buffer = new char[fileSize];
inputFile.read(buffer, fileSize);
// 输出文件内容
std::cout.write(buffer, fileSize);
delete[] buffer;
inputFile.close();
return 0;
}
在上面的示例中,首先打开一个二进制文件并通过seekg函数定位到文件末尾,然后通过tellg函数获取文件大小,再通过seekg函数回到文件开头。接着根据文件大小来动态分配一个char数组,使用read函数读取文件内容到数组中,最后使用write函数输出文件内容。最后别忘了关闭文件和释放内存。
通过这种方式,可以实现对文件的读取和写入操作,并且利用fseek和ftell函数可以更灵活地控制文件指针的位置。