"#include <stdio.h>\n#include <stdlib.h>\n\n#define MAX_SIZE 100\n\n// 结构体定义\ntypedef struct {\n int id;\n char name[50];\n float score;\n} Student;\n\n// 存放数据\nvoid saveData(Student students[], int size, const char* filename) {\n FILE* file = fopen(filename, "wb");\n if (file == NULL) {\n printf("无法打开文件 %s\n", filename);\n return;\n }\n\n fwrite(&size, sizeof(int), 1, file); // 写入学生人数\n\n for (int i = 0; i < size; i++) {\n fwrite(&students[i], sizeof(Student), 1, file); // 写入每个学生的信息\n }\n\n fclose(file);\n printf("数据已保存到文件 %s\n", filename);\n}\n\n// 读取数据\nvoid readData(Student students[], int* size, const char* filename) {\n FILE* file = fopen(filename, "rb");\n if (file == NULL) {\n printf("无法打开文件 %s\n", filename);\n return;\n }\n\n fread(size, sizeof(int), 1, file); // 读取学生人数\n\n for (int i = 0; i < *size; i++) {\n fread(&students[i], sizeof(Student), 1, file); // 读取每个学生的信息\n }\n\n fclose(file);\n printf("从文件 %s 读取了 %d 条数据\n", filename, *size);\n}\n\nint main() {\n Student students[MAX_SIZE];\n int size = 0;\n\n // 添加示例数据\n students[size++] = (Student) {1, "张三", 90.5};\n students[size++] = (Student) {2, "李四", 85.0};\n students[size++] = (Student) {3, "王五", 78.0};\n\n // 保存数据到文件\n saveData(students, size, "data.dat");\n\n // 清空数据\n for (int i = 0; i < size; i++) {\n students[i].id = 0;\n students[i].name[0] = '\0';\n students[i].score = 0.0;\n }\n size = 0;\n\n // 从文件读取数据\n readData(students, &size, "data.dat");\n\n // 打印数据\n printf("学生信息:\n");\n for (int i = 0; i < size; i++) {\n printf("ID: %d, 姓名: %s, 分数: %.1f\n", students[i].id, students[i].name, students[i].score);\n }\n\n return 0;\n}\n"该程序定义了一个 Student 结构体,用于存放学生的信息。saveData 函数将学生数组写入一个二进制文件,而 readData 函数从文件中读取学生数组。\n\n在 main 函数中,我们首先添加一些示例数据到 students 数组,然后调用 saveData 函数将数据保存到 data.dat 文件中。接着,我们清空 students 数组,然后调用 readData 函数从文件中读取数据。最后,我们打印出读取的数据。\n\n请注意,此示例仅仅是一个基本的实现,实际应用中可能需要更多的错误处理和数据验证。

C 语言数据存储与读取示例:使用文件操作存储和加载学生信息

原文地址: https://www.cveoy.top/t/topic/pwHc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录