📅  最后修改于: 2023-12-03 15:29:41.465000             🧑  作者: Mango
在C/C++中,fseek()是一个标准库函数,它是用于设置文件指针位置的函数。本文将介绍fseek()的使用方法,并提供示例代码。
int fseek(FILE *stream, long int offset, int origin);
其中,stream参数是指向FILE类型的指针,offset参数是偏移量,origin参数指定偏移的起始位置。函数返回值为0表示操作成功。
偏移的起始位置由origin参数指定,origin参数可以取以下值:
例如,要将文件指针移动到文件开头处:
fseek(fp, 0, SEEK_SET);
而要将文件指针移动到文件末尾处:
fseek(fp, 0, SEEK_END);
下面是一个示例,在文件中查找某个字符串并输出其行号:
#include <stdio.h>
int main() {
// 打开文件
FILE *fp = fopen("test.txt", "r");
if (fp == NULL) {
printf("文件打开失败!\n");
return -1;
}
// 读取文件内容,并查找字符串
char buffer[1024];
int line = 1;
while (fgets(buffer, 1024, fp) != NULL) {
if (strstr(buffer, "hello") != NULL) {
printf("第 %d 行: %s", line, buffer);
}
line++;
// 移动文件指针到下一行
fseek(fp, 0, SEEK_CUR);
}
// 关闭文件
fclose(fp);
return 0;
}
在上述示例代码中,fgets()函数用于读取文件中的一行内容,strstr()函数用于查找字符串。每次读取完一行后,就将文件指针移到下一行的开头,这是通过fseek()函数实现的。
本文介绍了C/C++中的fseek()函数的使用方法,并提供了示例代码。掌握fseek()函数的使用方法可以更好地处理文件操作。