(008)从键盘输入N个学生的有关数据,然后把它们转出到磁盘文件中去并且从磁盘输出到屏幕显示。
2021/9/18 23:06:56
本文主要是介绍(008)从键盘输入N个学生的有关数据,然后把它们转出到磁盘文件中去并且从磁盘输出到屏幕显示。,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#include <stdio.h> #include <string.h> #include <stdlib.h> #define N 3 #define M 3 /* auther:新生代小码农 date:2021-09-18 Question:从键盘输入N个学生的有关数据,然后把它们转出到磁盘文件中去, 并且从磁盘输出到屏幕显示。 */ struct Student{ int num; char name[50]; float score[N]; float aver; }stu[M]; void readIn(struct Student stu[]){ FILE *fp; int i; if((fp=fopen("student.dat","wb"))==NULL){ printf("cannot open file\n"); return; } for(i=0;i<M;i++){//将内存中的学生数据输出到磁盘中去 if(fwrite(&stu[i],sizeof(struct Student),1,fp)!=1){//等于1表示在写入 printf("file write error\n"); } } fclose(fp); printf("file write have successed\n"); } void writeOut(struct Student stu[]){ FILE *fp; int i,j; if((fp=fopen("student.dat","rb"))==NULL){ printf("cannot open file\n"); exit(0); }else{ for(i=0;i<M;i++){//从fp指向的文件中读入结构体数组stu的元素 fread(&stu[i],sizeof(struct Student),1,fp);//等于1表示在写入 printf("num:%3d\tname:%s\tscore:%.2f\t%.2f\t%.2f\taver:%.3f\t",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].aver); } } fclose(fp); } int main(){ struct Student stu[M],*p=stu; int i; for(i=0;i<N;i++){ printf("请输入第%d个学生的信息(学号,姓名,三门成绩)",i+1); scanf("%d %s %f %f %f",&stu[i].num,&stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]); stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3; } readIn(p); writeOut(p); return 0; }
这篇关于(008)从键盘输入N个学生的有关数据,然后把它们转出到磁盘文件中去并且从磁盘输出到屏幕显示。的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)