struct student
{
char name[20];
int id;
char grade[3];
}*stu;
struct courses
{
struct student* stu;
}*coursegrade;
char filename[20];
char scourse[20];
char* coursename;
int m = 2;
coursegrade = (struct courses*)malloc(5000 * sizeof(struct courses*));
stu = (struct student*)malloc(200 * sizeof(struct student*));
coursegrade->stu = (struct student*)malloc(200 * sizeof(struct student*));
coursename = (char*)malloc(200 * sizeof(char));
for (int i = 0;!feof(studentsfp);i++)
{
fscanf_s(studentsfp, "%s", &stu[i].name, 20);
fscanf_s(studentsfp, "%d", &stu[i].id);
for (int j = 0;j < m;j++)
{
fscanf_s(studentsfp, "%", &coursegrade->stu[i].grade, 20);
}
k = i;
}
fclose(studentsfp);
fclose(gradesfp);
fscanf_s(studentsfp, "%c", &coursegrade[j].stu[i].grade, 20);
目测应该是 %s
char grade[3];修改为char grade[20];