我有一个循环结构数组,接受用户输入的学生的学生姓名和学籍编号
代码:
int x;
struct studs
{
char name[50];
char rollno[50];
}student[50];
printf("\t\t________________________________");
printf("\n\n\t\t\tStudent Registration");
printf("\n\t\t_______________________________");
printf("\n\n\tHow many students in %s ", course);
scanf("%d", &stud);
admin = fopen(name, "a");
fprintf(admin, "\nNumber of students for %s: %d", course, stud);
fclose(admin);
for(x=0; x<stud; x++)
{
printf("\n\nStudent %d", x+1);
printf("\n_____________________________");
printf("\n\nStudent Name : ");
scanf("%s", student[x].name);
printf("\nStudent Rollno. : ");
scanf("%s", student[x].rollno);
system("\npause");
goto exam;
}
admin = fopen("student.txt", "w");
fprintf(admin, "Name: %s \nRoll Number: %s\n\n", student.name, student.rollno);
fclose(admin);
正如您所看到的,我试图将每个姓名和号码放入文本文件中,但我一直收到此错误
错误:请求会员&#39;姓名&#39;在不是结构或联合的东西中 错误:请求会员&#39; rollno&#39;在不是结构或联合的东西中
无论如何都要将它放入一个文件中,有没有结构?
答案 0 :(得分:1)
此
fprintf(admin, "Name: %s \nRoll Number: %s\n\n", student.name, student.rollno);
无法正常工作,student
是stud
的数组(至少如果我在学校就是这样)。您已经证明您已知道如何使用for(x=0; x<stud; x++)
来迭代学生人数,所以请再次执行此操作:
for(x=0; x<stud; x++) {
fprintf(admin, "Name: %s \nRoll Number: %s\n\n", student[x].name, student[x].rollno);
}
你的程序中可能会出现其他错误(就像那个goto exam
立即从你的for循环中跳出来一样)。但这至少会处理你所描述的错误。