0

ユーザーが入力した数の学生の学生名とロール番号を受け入れるループ構造体配列があります

コード:

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);

ご覧のとおり、各名前と番号をテキスト ファイルに入力しようとしていますが、このエラーが発生し続けます

エラー: 構造体または共用体ではないメンバー 'name' の要求 | エラー: 構造体または共用体ではないメンバー 'rollno' の要求

構造体の有無にかかわらず、これをファイルに入れる方法はありますか?

4

1 に答える 1

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 examfor ループからすぐにどこかに飛び出すなど)。しかし、これは少なくともあなたが説明したエラーに対処します。

于 2015-11-25T22:08:48.733 に答える