0506_IO1

思维导图:

练习: 

有如下结构体 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个学生信息,写入(加载)到数组中去,并直接输出学生信息

  1 #include <stdio.h>2 #include <string.h>3 #include <stdlib.h>4 #include <sys/types.h>5 #include <unistd.h>6 #include <sys/stat.h>7 #include <fcntl.h>8 #include <pthread.h>9 #include <semaphore.h>10 #include <wait.h>11 #include <signal.h>12 #include <sys/socket.h>13 #include <arpa/inet.h>14 #include <sys/socket.h>15 #include <sys/ipc.h>16 #include <sys/sem.h>17 #include <semaphore.h>18 #include <sys/msg.h>19 #include <sys/shm.h>20 #include <sys/un.h>21 typedef struct student22 {23     char name[16];24     int age;25     double math_score;26     double chinese_score;27     double english_score;28     double physics_score;29     double chemistry_score;30     double bio_score;31 }information;32 int main(int argc, const char *argv[])33 {34     //向堆区空间申请容量为5的内存空间35     information *students=(information*)malloc(5*sizeof(information));36     if(!students)37     {38         perror("students:");39         return -1;40     }41     //循环写入学生信息42     for(int i=0;i<5;i++)43     {44         printf("输入学生姓名:");45         scanf(" %15s",students[i].name);46         printf("输入学生年龄:");47         scanf(" %d",&students[i].age);48         printf("输入学生数学成绩:");49         scanf(" %lf",&students[i].math_score);50         printf("输入学生语文成绩:");51         scanf(" %lf",&students[i].chinese_score);52         printf("输入学生英语成绩:");53         scanf(" %lf",&students[i].english_score);54         printf("输入学生化学成绩:");55         scanf(" %lf",&students[i].chemistry_score);56         printf("输入学生生物成绩:");                                                                                                                                                                                                                                                                                                                                                                                  57         scanf(" %lf",&students[i].bio_score);58     }59     //打开文件60     FILE *wfp=fopen(argv[1],"w");61     if(!wfp)62     {63         perror("wfp:");64         return -1;65     }66     //将信息录入文件中67     for(int i=0;i<5;i++)68     {69         fprintf(wfp,"姓名:%s\n年龄:%d\n数学成绩:%.1f\n语文成绩:%.1f\n英语成绩:%.1f\n化学成绩:%.1f\n生物成绩:%.1f\n",\70             students[i].name,students[i].age,students[i].math_score,students[i].chinese_score,students[i].english_score,\71             students[i].chemistry_score,students[i].bio_score);72     }73     //关闭文件74     fclose(wfp);75     //打开文件76     FILE *rfp=fopen(argv[2],"r");77     if(!rfp)78     {79         perror("rfp:");80         return -1;81     }82     //循环将文件内容赋值给结构体数组83     for(int i=0;i<5;i++)84     {85         if(fscanf(rfp,"姓名:%15s\n年龄:%d\n数学成绩:%lf\n语文成绩:%lf\n英语成绩:%lf\n化学成绩:%lf\n生物成绩:%lf\n",students[i].name,&students[i].age,&students[i].math_score,\86                 &students[i].chinese_score,&students[i].english_score,&students[i].chemistry_score,&students[i].bio_score)!=7)87         {88             perror("rfp:");89             free(students);90             return -1;91         }92     }93     //循环输出数组元素94     for(int i=0;i<5;i++)95     {96         printf("姓名:%s\n年龄:%d\n数学成绩:%.1f\n语文成绩:%.1f\n英语成绩:%.1f\n化学成绩:%.1f\n生物成绩:%.1f\n",\97             students[i].name,students[i].age,students[i].math_score,students[i].chinese_score,students[i].english_score,\98              students[i].chemistry_score,students[i].bio_score);99     }
100     //关闭文件
101     fclose(rfp);
102     //释放内存
103     free(students);
104     students=NULL;
105     return 0;
106 }
~                                                                                                                                                                                                                                                                                                                                                                                                                          
~                                                                                                                                                                                                                                                                                                                                                                                                                          
~                                                                                                                                                                                                                                                                                                                                                                                                                          
~                                                                                                                                                                                                                                                                                                                                                                                                                          
~                                                                                                                                                                                                                                                                                                                                                                                                                          

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/670546.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5-在Linux上部署各类软件

1. MySQL 数据库安装部署 1.1 MySQL 5.7 版本在 CentOS 系统安装 注意&#xff1a;安装操作需要 root 权限 MySQL 的安装我们可以通过前面学习的 yum 命令进行。 1.1.1 安装 配置 yum 仓库 # 更新密钥 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022# 安装Mysql…

【软考】模拟考卷错题本2024-05-05

1 算法 关键词&#xff1a;按照单位重量价值大优先&#xff0c;那就是1、2、3即430&#xff1b;之后的根据排除法又可以得到630&#xff1b;故C。 2 UML 序列图 上图已经基本上有解析&#xff1b;重点在于在四个选项中选正确的。根据概念排除&#xff1a;异步和同步是不一样的&…

Claude聊天机器人推出全新iOS客户端及团队专属计划

Anthropic 正在使其 Claude AI 更易于在移动设备上访问。该公司发布了适用于 iOS 的 Claude 移动应用程序,任何用户都可以免费下载。与聊天机器人的移动网络版本类似,该应用程序跨设备同步用户与 Claude 的对话,允许他们从计算机跳转到应用程序(反之亦然),而不会丢失聊天…

OpenHarmony实战开发-请求自绘制内容绘制帧率

对于基于XComponent进行Native开发的业务&#xff0c;可以请求独立的绘制帧率进行内容开发&#xff0c;如游戏、自绘制UI框架对接等场景。 接口说明 开发步骤 说明&#xff1a; 本范例是通过Drawing在Native侧实现图形的绘制&#xff0c;并将其呈现在NativeWindow上 1.定义Ark…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-13-按键实验

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

04-25 周四 FastBuild重构实践-TLS、全局捕获异常、一键配置

04-25 周四 FastBuild重构实践 时间版本修改人描述04-25V0.1宋全恒新建文档2024年5月6日14:33:16V1.0宋全恒完成文档撰写 简介 由于 04-22 周日 阿里云-瑶光上部署FastBuild过程(配置TLS、自定义辅助命令)描述了重新部署一个FastBuild实例的过程&#xff0c;通过阅读这个&…

pytest教程-36-钩子函数-pytest_collection_start

领取资料&#xff0c;咨询答疑&#xff0c;请➕wei: June__Go 上一小节我们学习了pytest_unconfigure钩子函数的使用方法&#xff0c;本小节我们讲解一下pytest_collection_start钩子函数的使用方法。 pytest_collection_start(session) 是一个 pytest 钩子函数&#xff0c;…

pytest教程-37-钩子函数-pytest_collection_finish

领取资料&#xff0c;咨询答疑&#xff0c;请➕wei: June__Go 上一小节我们学习了pytest_collection_start钩子函数的使用方法&#xff0c;本小节我们讲解一下pytest_collection_finish钩子函数的使用方法。 pytest_collection_finish(session) 是一个 pytest 钩子函数&…

BEV下统一的多传感器融合框架 - FUTR3D

BEV下统一的多传感器融合框架 - FUTR3D 引言 在自动驾驶汽车或者移动机器人上&#xff0c;通常会配备许多种传感器&#xff0c;比如&#xff1a;光学相机、激光雷达、毫米波雷达等。由于不同传感器的数据形式不同&#xff0c;如RGB图像&#xff0c;点云等&#xff0c;不同模态…

java-函数式编程-函数对象

定义 什么是合格的函数&#xff1f;无论多少次执行函数&#xff0c;只要输入一样&#xff0c;输出就不会改变 对象方法的简写 其实在类中&#xff0c;我们很多参数中都有一个this&#xff0c;被隐藏传入了 函数也可以作为对象传递&#xff0c;lambda就是很好的例子 函数式接口中…

微搭低代码入门05文件的上传和下载

目录 1 创建数据源2 创建应用3 创建页面4 设置导航功能5 文件上传6 文件下载总结 小程序中&#xff0c;我们通常会有文件的上传和下载的需&#xff0c;在微搭中&#xff0c;文件是存放在云存储中&#xff0c;每一个文件都会有一个唯一的fileid&#xff0c;我们本篇就介绍如何通…

如何将视频转换成gif表情包?超简单的方法分享

把视频中的片段截取制作成gif动画表情包是现在网络中常见的制作图片的一种方法。Gif表情包能够调节聊天中的氛围&#xff0c;快速有趣的传递信息。也因为gif动图兼容性高、体积小便于分享所以在现在的网络中非常的收欢迎。接下来&#xff0c;小编就给大家分享一下怎么把视频转g…