如何在 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 循环填充。
我有一个文本文件,其中包含与此类似的文本:
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 循环填充。