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

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

介绍

在C和C++中,fseek()函数用于将文件指针定位到指定的位置。它是标准库中的一个函数,头文件为stdio.h。

fseek()函数有三个参数:文件指针、偏移量和起始位置。它用于将文件指针移到指定位置,以便读取或写入数据。

用法
int fseek(FILE *stream, long int offset, int whence);

第一个参数是文件指针,指向要定位的文件。第二个参数是偏移量,指定从起始位置开始的偏移字节数。第三个参数是起始位置。它可能是下面三个之一:

  • SEEK_SET:文件开头
  • SEEK_CUR:当前位置
  • SEEK_END:文件结尾

例如,要将文件指针定位到文件开头,可以这样写:

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个字节并再次读取文件内容。