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

问题描述

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

01234 Johnathan Doe 1 RG
12345 Jane Doe 3 OC

我的问题是:如何使用数组(结构)存储从文件读取的数据,从而定义一个可以包含文件中包含的信息的结构? 当然文件是连续给我的:徽章,姓名,姓氏,年份和状态按此顺序排列,彼此之间用空格隔开。另外,除了已经存在的库之外,我无法添加其他库。

#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循环中,以检查其返回值(是否发生EOF或错误)。

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