将循环结构数据放入C中的文件中

时间:2015-11-25 22:00:21

标签: c arrays struct file-handling structured-array

我有一个循环结构数组,接受用户输入的学生的学生姓名和学籍编号

代码:

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;在不是结构或联合的东西中

无论如何都要将它放入一个文件中,有没有结构?

1 个答案:

答案 0 :(得分:1)

fprintf(admin, "Name: %s \nRoll Number: %s\n\n", student.name, student.rollno);

无法正常工作,studentstud的数组(至少如果我在学校就是这样)。您已经证明您已知道如何使用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循环中跳出来一样)。但这至少会处理你所描述的错误。