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

day 20 (标准IO 与 文件IO)

标准IO与文件IO的区别

标准IO和文件IO的区别:1.标准IO是库函数,是对系统调用的封装2.文件IO是系统调用,是Linux内核中的函数接口3.标准IO是有缓存的4.文件IO是没有缓存的IO:b  cd -  标准IOl s p文件IO:1.操作步骤:打开 -> 读/写 -> 关闭2.打开文件:open int open(const char *pathname, int flags);int open(const char *pathname, int flags, mode_t mode);功能:打开文件并且获得文件描述符参数:pathname:要打开的文件名flags:标志位O_RDONLY    只读O_WRONLY    只写O_RDWR      读写O_APPEND    追加O_ASYNC     异步IOO_CREAT     文件不存在创建O_TRUNC     文件存在截断(清0)返回值:成功返回文件描述符(很小的非负整数)失败返回-1 新生成的文件描述符总是为尚未被使用的最小的非负整数0: stdin1: stdout2: stderr3.关闭文件:close int close(int fd);功能:将fd对应的文件描述符关闭4.读写:read/write 1.writessize_t write(int fd, const void *buf, size_t count);功能:向fd对应的文件中写入buf指向的count个字节参数:fd:文件描述符buf:写入数据空间首地址count:写入的字节数返回值:成功返回实际写入字节数失败返回-12.read ssize_t read(int fd, void *buf, size_t count);功能:从文件描述符fd对应的文件中读取count个字节存放到buf开始的空间中参数:fd:文件描述符 buf:存放数据空间的首地址count:想要读取数据字节数返回值:   成功返回实际读到的字节数失败返回-1 读到文件末尾返回0 

 

人口普查作业 

某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。

这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今天是 2014 年 9 月 6 日,所以超过 200 岁的生日和未出生的生日都是不合理的,应该被过滤掉。

输入格式:

输入在第一行给出正整数 N,取值在(0,105];随后 N 行,每行给出 1 个人的姓名(由不超过 5 个英文字母组成的字符串)、以及按 yyyy/mm/dd(即年/月/日)格式给出的生日。题目保证最年长和最年轻的人没有并列。

输出格式:

在一行中顺序输出有效生日的个数、最年长人和最年轻人的姓名,其间以空格分隔。

如下 

  1 #include<stdio.h>2 #include<string.h>3 4 int main(void)5 {6     int w=0;7     int n,cnt = 0;//cnt 符合条件的个数8     scanf("%d",&n);9     int year,mouth,day;10     char name[10],maxname[10],minname[10];11     int MAXage =20140907; int MINage = 18140907;12     while(cnt<n)13     {14         scanf("%s %d/%d/%d",name,&year,&mouth,&day);15         int s = year*10000+mouth*100+day;16         if(s>=18140907&&s<=20140907)17         {18             w++;19             if(s<MAXage)20             {21                 strcpy(maxname,name);22                 MAXage=s;23             }24             if(s>MINage)25             {26                 strcpy(minname,name);27                 MINage=s;28             }                                                                                                                                                                                           29         }30         cnt++;31     }32     if(w>0)33     {34         printf("%d %s %s",w,maxname,minname);35     }36 37     return 0;38 }
~             

运行结果 

相关文章:

  • 卷积神经网络吴恩达coursera
  • Vue的一些基础设置
  • 【AIGC】Stable Diffusion的模型微调
  • Failed to construct ‘RTCIceCandidate‘ sdpMid and sdpMLineIndex are both null
  • 【机器学习】数据清洗之处理缺失点
  • uniapp API文档地址 以及 HBuilder安装
  • 使用vscode传入参数的方式进行debug
  • 解决Ubuntu23.10中WPS的字体问题
  • Facebook MarketPlace自养号测评在海外FB商城如何精准引流私域?(上)
  • 配置Vite+React+TS项目
  • 云计算基础-虚拟机迁移原理
  • ChatGPT-4 Alpha:OpenAI的革命性升级
  • Doris ——SQL原理解析
  • C++中的constexpr
  • C#面:简述重载
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 【前端学习】-粗谈选择器
  • Apache的80端口被占用以及访问时报错403
  • JAVA多线程机制解析-volatilesynchronized
  • Java精华积累:初学者都应该搞懂的问题
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Meteor的表单提交:Form
  • php面试题 汇集2
  • Python_OOP
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 缓存与缓冲
  • 技术胖1-4季视频复习— (看视频笔记)
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 智能网联汽车信息安全
  • 最简单的无缝轮播
  • NLPIR智能语义技术让大数据挖掘更简单
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • zabbix3.2监控linux磁盘IO
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #QT(串口助手-界面)
  • (1)(1.13) SiK无线电高级配置(五)
  • (2015)JS ES6 必知的十个 特性
  • (4)事件处理——(7)简单事件(Simple events)
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (学习日记)2024.02.29:UCOSIII第二节
  • (原)本想说脏话,奈何已放下
  • (转)c++ std::pair 与 std::make
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .NET 中创建支持集合初始化器的类型
  • .net专家(高海东的专栏)
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法