当前位置: 首页 > news >正文

文件之间的输入输出

编写2个函数:save stu 和 load stu
save stu:通过 fprintf 将arr数组中的3个学生的所有信息,保存到文件中去
load stu:通过 fscanf 将文件中的3个学生的所有信息,读取到一个新的结构体数组中,并输出所有学生的信息

#include <myhead.h>/*创建学生结构体*/
typedef struct Student{char name[20];int id;double Chinese;double math;double English;double physical;double chemical;double biological;
}stu_t;/*函数声明*/
//1、输入学生信息
void input_message(stu_t *arr);
//2、将学生信息保存到文件中
void save_stu(stu_t *arr);
//3、将文件中学生的信息存入新数组,并输出
void load_stu(stu_t *new);int main(int argc, const char *argv[])
{stu_t arr[3] = {0}; 	/*定义学生数组*/input_message(arr);		/*调用输入函数*/save_stu(arr); 			/*调用保存信息到文件函数*/stu_t new[3] = {0}; 	/*创建新的数组*/load_stu(new); 			/*调用将信息存入新数组并输出函数*/return 0;
}//1、输入学生信息
void input_message(stu_t *arr)
{printf("请输入学生信息:\n");for(int i=0; i<3; i++){printf("请输入第%d个学生姓名:",i+1);scanf("%s", arr[i].name);printf("请输入第%d个学生学号:",i+1);scanf("%d", &arr[i].id);printf("请输入第%d个学生成绩:\n",i+1);printf("语文:");scanf("%lf", &arr[i].Chinese);printf("数学:");scanf("%lf", &arr[i].math);printf("英语:");scanf("%lf", &arr[i].English);printf("物理:");scanf("%lf", &arr[i].physical);printf("化学:");scanf("%lf", &arr[i].chemical);printf("生物:");scanf("%lf", &arr[i].biological);}
}//2、将学生信息保存到文件中
void save_stu(stu_t *arr)
{FILE * fp = fopen("stu.txt" , "w"); /*打开文件*//*判断打开是否成功*/if(NULL==fp){perror("fopen错误:");return;}/*输出到文件中*/for(int i=0; i<3; i++){fprintf(fp, "%s\t", arr[i].name);fprintf(fp, "%d\n", arr[i].id);fprintf(fp, "%.2lf\t", arr[i].Chinese);fprintf(fp, "%.2lf\t", arr[i].math);fprintf(fp, "%.2lf\n", arr[i].English);fprintf(fp, "%.2lf\t", arr[i].physical);fprintf(fp, "%.2lf\t", arr[i].chemical);fprintf(fp, "%.2lf\n", arr[i].biological);}fclose(fp); /*关闭文件*/
}//3、将文件中学生的信息存入新数组,并输出
void load_stu(stu_t *new){FILE *fp = fopen("stu.txt", "r"); /*打开文件*//*判断打开是否成功*/if(NULL==fp){perror("fopen错误:");return;}/*输入到新数组*/for(int i=0; i<3; i++){fscanf(fp, "%s", new[i].name);fscanf(fp, "%d", &new[i].id);fscanf(fp, "%lf", &new[i].Chinese);fscanf(fp, "%lf", &new[i].math);fscanf(fp, "%lf", &new[i].English);fscanf(fp, "%lf", &new[i].physical);fscanf(fp, "%lf", &new[i].chemical);fscanf(fp, "%lf", &new[i].biological);}printf("=====学生信息=====\n");for(int i=0; i<3; i++){	printf("姓名:%s\t", new[i].name);printf("学号:%d\n", new[i].id);printf("成绩:\n");printf("语文:%.2lf\t", new[i].Chinese);printf("数学:%.2lf\t", new[i].math);printf("英语:%.2lf\n", new[i].English);printf("物理:%.2lf\t", new[i].physical);printf("化学:%.2lf\t", new[i].chemical);printf("生物:%.2lf\n", new[i].biological);}fclose(fp); /*关闭文件*/
}


http://www.mrgr.cn/news/48064.html

相关文章:

  • 在python中如何判断回文串(一)?
  • Linux内核 --内存管理之 Slab 分配器介绍
  • 太速科技-628-基于VU3P的双路100G光纤加速计算卡
  • Docker 入门篇
  • 【前端碎片记录】大文件分片上传
  • 【selenium】webdriver测试脚本
  • 常用的web服务器简述
  • ubuntu24 finalshell 无法连接ubuntu服务器, 客户端无法连接ubuntu, 无法远程连接ubuntu。
  • go开发环境设置-安装与交叉编译
  • 【C++进阶】关联式容器map的使用
  • Ubuntu安装Apache教程
  • 排队论:根据λ(到达率)和 μ(服务率)的用户等待时间公式
  • 打开传奇提示connection closed是什么意思?怎么解决?
  • 动态爬虫管理平台构建与实现(论文+源码)_kaic
  • 小米开放式耳机好不好用?小米、南卡、倍思、飞利浦热门开放式耳机一周测评!
  • 工业4G路由R10提升物流仓储效率
  • 【系统架构设计师】案例专题六(8大系统架构设计之1): 信息系统架构设计考点梳理
  • TikTok代理IP哪里找?
  • 数据结构:快排
  • C语言基础语法——类型转换