C语言的文件问题
811
2022.12.25
发布于 未知归属地

#include <stdio.h>

#include <stdlib.h>

#define NUM_STUDENTS 5

#define NUM_COURSES 3

typedef struct {

    int student_number;

    char name[20];

    float courses[NUM_COURSES];

    float average;

} Student;

int main(int argc, char *argv[]) {

    if (argc != 2) {

        printf("Usage: %s file_name\n", argv[0]);

        return 1;

    }

    char *file_name = argv[1];

    Student students[NUM_STUDENTS];

    for (int i = 0; i < NUM_STUDENTS; i++) {

        printf("Enter student number: ");

        scanf("%d", &students[i].student_number);

        printf("Enter name: ");

        scanf("%s", students[i].name);

        for (int j = 0; j < NUM_COURSES; j++) {

            printf("Enter course %d score: ", j + 1);

            scanf("%f", &students[i].courses[j]);

        }

        students[i].average = (students[i].courses[0] + students[i].courses[1] + students[i].courses[2]) / NUM_COURSES;

    }

    FILE *fp = fopen(file_name, "wb");

    if (fp == NULL) {

        perror("Error opening file");

        return 1;

    }

    for (int i = 0; i < NUM_STUDENTS; i++) {

        fwrite(&students[i], sizeof(Student), 1, fp);

    }

    fclose(fp);

    return 0;

}

嗯,大家能帮我看看这个代码有啥问题吗。试试结果不对。

评论 (1)