📜  如何重置为从文件开头读取 - C 编程语言(1)

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

如何重置为从文件开头读取 - C 编程语言

在C编程中,对于从文件中读取内容的操作,我们可以使用fseek()函数来重置文件指针。这个函数可以将文件指针定位到文件的任何位置,从而实现对文件的读取和写入。

fseek()函数的使用方法

fseek()函数的原型如下:

int fseek(FILE *stream, long int offset, int whence);
  • stream: 文件指针。
  • offset: 偏移量。它是一个标准的长整型(long int)。
  • whence: 它指定了偏移量的起始位置,可以是以下值之一:
    • SEEK_SET: 从文件开头开始偏移,偏移量可以为正或负;
    • SEEK_CUR: 从文件指针当前位置开始偏移,偏移量可以为正或负;
    • SEEK_END: 从文件结尾开始偏移,偏移量必须为负。

fseek()函数成功执行后将返回0,如果执行失败,则返回-1。

重置为从文件开头读取

如果你想要重置文件指针为文件开头,你可以使用下面的代码:

rewind(file_pointer);

这个函数会将文件指针定位到文件开头,从而可以重新从文件的开头读取内容。

示例

下面是一个简单的示例程序,演示如何使用fseek()函数来重置文件指针为文件开头:

#include <stdio.h>

int main()
{
    FILE *fp;
    int ch;

    fp = fopen("test.txt", "r");
    if (fp == NULL)
    {
        printf("Error opening file\n");
        return -1;
    }

    // 读取文件中的第一个字符
    ch = fgetc(fp);
    printf("First character of file: %c\n", ch);

    // 重置文件指针为文件开头
    fseek(fp, 0, SEEK_SET);

    // 再次读取文件中的第一个字符
    ch = fgetc(fp);
    printf("First character of file (after resetting): %c\n", ch);

    fclose(fp);
    return 0;
}

运行结果如下:

First character of file: T
First character of file (after resetting): T

可以看到,程序先读取了文件中的第一个字符,然后调用fseek()函数将文件指针重置为文件开头,最后再次读取文件中的第一个字符。