如何在 C 中读取和使用 file.txt

How read and use a file.txt in C

我有一个文本文件,其中包含与此类似的文本:

01234 Johnathan Doe 1 RG
12345 无名氏 3 OC

我的问题是:如何使用(结构的)数组来存储从文件中读取的数据,从而定义一个可以包含文件中包含的信息的结构? 当然文件给我的是一行:badge,name,surname,year and status 这个顺序,互相隔开一个space。此外,除了已经存在的库之外,我无法添加其他库。

#include <stdio.h>
#include <string.h>

struct student {
    int *badge;
    char *name;
    char *surname;
    int *year;
    char *status;
};
typedef struct student Student;

int main(){
    
}

结构做得很好,除了您可以将数字存储为整数,无需将它们作为指针。

您可能想看看 fopen:打开文件。

还有 fscanf,它从文件中读入。

fscanf 接受类型说明符,因此,在这种情况下它将是 “%i, %s, %s, %i, %s”,那么下一个参数将是您想要存储所读内容的顺序的变量。

所以上面的例子有局部变量。并将 fscanf 包装在一个 while 循环中,检查它的 return 值(是否发生 EOF 或错误)。

在循环内,您可以创建结构并使用各自的局部变量初始化成员。该结构将代表一条线。然后将结构存储在数组中,因此数组将代表文件,数组将由 while 循环填充。