1)定义一个结构体类型stud (int id, char name[20], char banj[30], char sex, float scorel,float score2, float total)
2)定义 个结构体数组s[5],并初始化前2个人的数据,从键盘输入3个人的数据。
3)将这5个人的数据写入到文件a.txt中
4)从a.txt中读出数据,存放在s[5]中,用循环实现5个人数据的计算并屏幕输出。
结构体变量的初始化,运用
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 技术专家团-小桥流水 2021-12-17 11:45关注
for循环录入剩余3个学生数据后,用fopen打开文件,用fprintf逐个写入文件就是了。
读取文件用fscanf函数读取就可以了
参考如下:#include <stdio.h> struct stud { int id; char name[20]; char banj[30]; char sex; float scorel; float score2; float total; }; int main() { struct stud s[5]={ {111,"张三","一班",'M',70,80,150},{112,"李四","二班",'M',70,80,150} }; int i; FILE* fp; printf("请输入3个学生的信息:\n"); for(i=0;i<3;i++) { printf("请输入学号:"); scanf("%d",&s[i+2].id); getchar(); //接收回车符 printf("请输入姓名:"); scanf("%s",s[i+2].name); getchar(); //接收回车符 printf("请输入班级:"); scanf("%s",s[i+2].banj); getchar(); //接收回车符 printf("请输入性别(F/M):"); s[i+2].sex = getchar(); printf("请输入成绩1:"); scanf("%f",&s[i+2].scorel); printf("请输入成绩2:"); scanf("%f",&s[i+2].score2); s[i+2].total = s[i+2].scorel + s[i+2].score2; } if ((fp=fopen("a.txt","w")) == 0) { printf("文件打开失败\n"); return 0; } //写入文件 for (i=0;i<5;i++) { fprintf(fp,"%d %s %s %c %f %f %f\n",s[i].id,s[i].name,s[i].banj,s[i].sex,s[i].scorel,s[i].score2,s[i].total); } fclose(fp); //读取文件并显示 if((fp=fopen("a.txt","r"))==0) { printf("文件打开失败\n"); return 0; } i = 0; while (!feof(fp)) { fscanf(fp,"%d %s %s %c %f %f %f\n",&s[i].id,s[i].name,s[i].banj,&s[i].sex,&s[i].scorel,&s[i].score2,&s[i].total); if(s[i].id > 0)//避免读入空行 { printf("%d %s %s %c %f %f %f\n",s[i].id,s[i].name,s[i].banj,s[i].sex,s[i].scorel,s[i].score2,s[i].total); i++; } } fclose(fp); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥100 set_link_state
- ¥15 虚幻5 UE美术毛发渲染
- ¥15 CVRP 图论 物流运输优化
- ¥15 Tableau online 嵌入ppt失败
- ¥100 支付宝网页转账系统不识别账号
- ¥15 基于单片机的靶位控制系统
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度