#include <stdio.h>

// 学生信息结构体
struct Student {
    int id;
    char name[20];
    float score;
};

int main() {
    FILE *fp;
    struct Student stu[3] = {
        {101, "张三", 90.5},
        {102, "李四", 85.0},
        {103, "王五", 92.5}
    };
    struct Student temp;  // 临时存储读取的学生信息

    // 写入文件（格式化方式）
    fp = fopen("students.txt", "w");
    if (fp == NULL) {
        printf("无法打开文件！\n");
        return 1;
    }
    for (int i = 0; i < 3; i++) {
        // 按格式写入：学号 姓名 成绩
        fprintf(fp, "%d %s %.1f\n", stu[i].id, stu[i].name, stu[i].score);
    }
    fclose(fp);

    // 读取文件（格式化方式）
    fp = fopen("students.txt", "r");
    if (fp == NULL) {
        printf("无法打开文件！\n");
        return 1;
    }
    printf("学生信息：\n");
    printf("学号\t姓名\t成绩\n");
    // 按格式读取，直到文件结束
    while (fscanf(fp, "%d %s %f", &temp.id, temp.name, &temp.score) != EOF) {
        printf("%d\t%s\t%.1f\n", temp.id, temp.name, temp.score);
    }

    fclose(fp);
    return 0;
}
