📜  C C++中的fseek()示例(1)

📅  最后修改于: 2023-12-03 15:29:41.465000             🧑  作者: Mango

C/C++中的fseek()示例

在C/C++中,fseek()是一个标准库函数,它是用于设置文件指针位置的函数。本文将介绍fseek()的使用方法,并提供示例代码。

函数原型
int fseek(FILE *stream, long int offset, int origin);

其中,stream参数是指向FILE类型的指针,offset参数是偏移量,origin参数指定偏移的起始位置。函数返回值为0表示操作成功。

使用方法

偏移的起始位置由origin参数指定,origin参数可以取以下值:

  • SEEK_SET:从文件起始位置开始偏移,偏移量为offset。
  • SEEK_CUR:从文件当前位置开始偏移,偏移量为offset。
  • SEEK_END:从文件末尾位置开始偏移,偏移量为offset。

例如,要将文件指针移动到文件开头处:

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()函数的使用方法可以更好地处理文件操作。