在C++中,可以使用fseek
函数来改变文件读写位置,其语法如下:
int fseek(FILE *stream, long offset, int origin);
其中,stream
是文件指针,offset
是相对于origin
的偏移量,origin
可以取以下值:
SEEK_SET
:从文件开头开始偏移SEEK_CUR
:从当前位置开始偏移SEEK_END
:从文件末尾开始偏移
以下是一个示例代码,展示如何使用fseek
函数改变文件读写位置:
#include#include int main() { FILE *file = fopen("example.txt", "r"); if (file) { // 移动读写位置到文件末尾 fseek(file, 0, SEEK_END); // 获取当前读写位置 long pos = ftell(file); std::cout << "Current file position: " << pos << std::endl; // 移动读写位置到文件开头 fseek(file, 0, SEEK_SET); // 获取当前读写位置 pos = ftell(file); std::cout << "Current file position: " << pos << std::endl; fclose(file); } else { std::cout << "Failed to open file" << std::endl; } return 0; }
在上面的示例中,首先打开一个文件并使用fseek
函数将读写位置移动到文件末尾,然后获取当前读写位置并输出。接着再将读写位置移动到文件开头,并再次获取当前读写位置并输出。