在C++中,可以使用fseek
函数来改变文件读写位置,其语法如下:
int fseek(FILE *stream, long offset, int origin);
其中,stream
是文件指针,offset
是相对于origin
的偏移量,origin
可以取以下值:
SEEK_SET
:从文件开头开始偏移SEEK_CUR
:从当前位置开始偏移SEEK_END
:从文件末尾开始偏移以下是一个示例代码,展示如何使用fseek
函数改变文件读写位置:
#include <iostream>
#include <cstdio>
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
函数将读写位置移动到文件末尾,然后获取当前读写位置并输出。接着再将读写位置移动到文件开头,并再次获取当前读写位置并输出。