📅  最后修改于: 2023-12-03 15:13:54.248000             🧑  作者: Mango
fseek()
是 C 语言中的一个标准函数,它用于定位文件指针的位置。在 C++ 中,它也是一个常用的文件操作函数,可以用来移动文件指针到文件中的任意位置。
函数原型:
int fseek(FILE *stream, long int offset, int origin);
stream
:文件流指针。offset
:偏移量,可以是正数也可以是负数,用于指定偏移的字节数。origin
:起始位置,可以是以下三个值之一:SEEK_SET
:文件开头SEEK_CUR
:当前位置SEEK_END
:文件结尾函数返回值为 0 表示成功,非 0 值表示失败。
以下示例演示了如何使用 fseek()
函数,将文件指针移动到文件开头、结尾和当前位置。
#include <cstdio>
int main() {
FILE* pFile = std::fopen("example.txt", "r");
if (pFile != nullptr) {
// 移动到文件开头
std::fseek(pFile, 0, SEEK_SET);
// 移动到文件结尾
std::fseek(pFile, 0, SEEK_END);
// 移动到当前位置
std::fseek(pFile, -4, SEEK_CUR);
std::fclose(pFile);
}
return 0;
}
offset
参数应为字节数,如果使用文本文件流,则应为字符数。fseek()
函数时应格外小心,尤其是在多线程环境下。fseek()
函数可能会有限制,例如最大偏移量、文件大小、文件大小必须是某个固定值等。需要查看相关的操作系统或文件系统文档以确定这些限制。