📅  最后修改于: 2023-12-03 15:13:44.322000             🧑  作者: Mango
在C和C++中,fseek()函数用于将文件指针定位到指定的位置。它是标准库中的一个函数,头文件为stdio.h。
fseek()函数有三个参数:文件指针、偏移量和起始位置。它用于将文件指针移到指定位置,以便读取或写入数据。
int fseek(FILE *stream, long int offset, int whence);
第一个参数是文件指针,指向要定位的文件。第二个参数是偏移量,指定从起始位置开始的偏移字节数。第三个参数是起始位置。它可能是下面三个之一:
例如,要将文件指针定位到文件开头,可以这样写:
fseek(fp, 0, SEEK_SET);
要将文件指针定位到文件结尾的前100个字节,可以这样写:
fseek(fp, -100L, SEEK_END);
fseek()函数的返回值为0表示成功,-1表示失败。失败时可以使用errno变量来获取错误码。
以下是一个简单的使用fseek()函数的示例:
#include <stdio.h>
int main(void) {
FILE *fp;
char buffer[512];
fp = fopen("file.txt", "r");
// 将文件指针定位到文件开头
fseek(fp, 0, SEEK_SET);
// 读取文件
while (fgets(buffer, sizeof(buffer), fp) != NULL) {
printf("%s", buffer);
}
// 将文件指针定位到文件结尾的前100个字节
fseek(fp, -100L, SEEK_END);
// 读取文件
while (fgets(buffer, sizeof(buffer), fp) != NULL) {
printf("%s", buffer);
}
fclose(fp);
return 0;
}
以上代码打开名为file.txt的文件,将文件指针定位到文件开头并读取文件内容,然后将文件指针移动到文件结尾的前100个字节并再次读取文件内容。