fprintf和fscanf的简单文件使用

发布时间:2026/8/28 13:35:36
fprintf和fscanf的简单文件使用 有如下结构体struct Student{ char name[16]; int age; double math_score; double chinese_score; double english_score; double physics_score; double chemistry_score; double bio_score; };申请该结构体数组容量为5初始化5个学生的信息 使用fprintf将数组中的5个学生信息保存到文件中去 下一次程序运行的时候使用fscanf将文件中的5个学生信息写入(加载)到数组中去并直接输出学生信息。#include stdio.h /*----------------将学生信息写入文件中--------*/ struct Student{ char name[16]; int age; double math_score; double chinese_score; double english_score; double physics_score; double chemistry_score; double bio_score; }; int main(int argc, const char *argv[]) { struct Student s[5] { {星期一,1,2,3,4,5,6,7}, {星期二,8,9,10,11,12,13,14}, {星期三,15,16,17,18,19,20,21}, {星期四,22,23,24,25,26,27,28}, {星期五,29,30,31,32,33,34,35}, }; FILE* fp fopen(./test.txt,w); if(fp NULL) { printf(文件夹打开失败\n); return 1; } for(int i 0; i 5; i) { fprintf(fp,name:%s\t,s[i].name); fprintf(fp,age:%d\t,s[i].age); fprintf(fp,math_score:%lf\t,s[i].math_score); fprintf(fp,chinese_score:%lf\t,s[i].chinese_score); fprintf(fp,english_score:%lf\t,s[i].english_score); fprintf(fp,physics_score:%lf\t,s[i].physics_score); fprintf(fp,chemistry_score:%lf\t,s[i].chemistry_score); fprintf(fp,bio_score:%lf\t,s[i].bio_score); fprintf(fp,\n); } fclose(fp);//关闭文件 return 0; }#include stdio.h /*将文件内容打印到结构体中*/ struct Student{ char name[16]; int age; double math_score; double chinese_score; double english_score; double physics_score; double chemistry_score; double bio_score; }; int main(int argc, const char *argv[]) { struct Student s[5]; FILE* fp fopen(./test.txt,r); if(fp NULL) { printf(文件打开失败); return 1; } int i0; while(1) { fscanf(fp,%s %d %lf %lf %lf %lf %lf %lf, s[i].name, s[i].age, s[i].math_score, s[i].chinese_score, s[i].english_score, s[i].physics_score, s[i].chemistry_score, s[i].bio_score ); if(s[i].name EOF) { break; } printf(%s\t %d\t %lf\t %lf\t %lf\t %lf\t %lf\t %lf\t, s[i].name, s[i].age, s[i].math_score, s[i].chinese_score, s[i].english_score, s[i].physics_score, s[i].chemistry_score, s[i].bio_score); i; } fclose(fp); return 0; }