下面是一个示例程序,可以实现上述功能:
``` #include <stdio.h> #include <stdlib.h> #include <string.h>
#define MAX_NAME_LEN 20 #define MAX_GENDER_LEN 10 #define MAX_ID_LEN 20
struct Student { char name[MAX_NAME_LEN]; char gender[MAX_GENDER_LEN]; char id[MAX_ID_LEN]; int age; int score; };
int import_from_file(const char *filename, struct Student **students, int *num_students) { // 从文件导入学生数据 // 将文件中的每行数据转换成结构体存储 // 并将结构体指针和学生数量存储在传入的指针变量中 // 返回0表示成功,返回其他值表示失败 FILE *fp = fopen(filename, "r"); if (!fp) { return -1; }
int count = 0; char line[1024]; while (fgets(line, sizeof(line), fp)) { // 读取文件中的每一行,并将数据转换成结构体 struct Student *student = (struct Student *)malloc(sizeof(struct Student)); if (sscanf(line, "%s %s %s %d %d", student->name, student->gender, student->id