版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
标准输入输出第1页,共16页,2023年,2月20日,星期一11.1标准输入输出的基本操作文件控制结构中包含处理文件所需的全部信息,例如文件名、文件当前的读写位置、用于该文件读写的内存缓冲区位置等。打开文件时,系统会在内存中自动建立该文件的控制结构。关闭文件时,文件控制结构被释放。在对文件进行操作之前,要首先获取文件的指针,即指向文件控制结构的指针,后续操作都通过该指针进行。标准输入输出时,有3个比较特殊的文件,它们是:标准输入文件(stdin):一般为键盘;标准输出文件(stdout):一般为显示器;标准错误输出文件(stderr):一般为显示器。第2页,共16页,2023年,2月20日,星期一11.1.1文件的打开操作文件之前要打开文件,打开文件主要是在系统中分配一些资源用于保存该文件的状态信息,并获取文件的指针,以后调用其它函数对文件进行读写操作时都要提供这个指针。 FILE*fopen(constchar*filename,constchar*modes);第3页,共16页,2023年,2月20日,星期一11.1.2文件的关闭对文件操作完成后,应该关闭文件,进而释放文件所占用的系统资源。文件关闭之后,文件指针将不再有效,用户也就无法通过该指针操作文件。 intfclose(FILE*fp);第4页,共16页,2023年,2月20日,星期一11.1.3缓冲区的刷新刷新操作是指将缓冲区中的数据清除,这项工作可以由fflush或fpurge函数完成。 intfflush(FILE*fp); intfpurge(FILE*fp);第5页,共16页,2023年,2月20日,星期一11.1.4缓冲区属性的设置缓冲区的大小和类型等都可以通过函数来设置,缓冲区的类型有下面三种:全缓冲:缓冲区被填满后才执行输入输出操作,将数据写入到磁盘文件或输出到用户终端;行缓冲:缓冲区中填入换行符时,执行输入输出操作;无缓冲:不对数据进行缓存,标准错误输出stderr一般就是无缓冲的,这可以使错误信息尽快地显示出来。intsetvbuf(FILE*fp,char*buf,intmode,size_tsize);_IOFBF、_IOLBF、_IONBF第6页,共16页,2023年,2月20日,星期一11.2非格式化输入输出非格式化输入输出包括单个字节输入输出、字符串(行)输入输出以及数据块输入输出,下面分别进行介绍。第7页,共16页,2023年,2月20日,星期一11.2.1单个字节输入输出在进行单个字节的输入输出操作时,可以使用fgetc函数和fputc函数。 intfgetc(FILE*fp); intfputc(intc,FILE*fp); intgetchar(); intfgetc(stdin); intputchar(intc); intfputc(c,stdout);第8页,共16页,2023年,2月20日,星期一11.2.1单个字节输入输出rewind函数 voidrewind(FILE*fp);fseek函数 intfseek(FILE*fp,longoffset,intwhence); fseek(fp,0,SEEK_SET); fseek(fp,0,SEEK_END);ftell函数 longftell(FILE*fp);第9页,共16页,2023年,2月20日,星期一11.2.2字符串输入输出对文件的输入输出,除了可以利用fgetc函数和fputc函数以字节为单位进行外,还可以使用fgets函数和fputs函数以字符串(行)为单位进行。 char*fgets(char*s,intn,FILE*fp); intfputs(constchar*s,FILE*fp);第10页,共16页,2023年,2月20日,星期一11.2.3数据块输入输出对文件进行输入输出操作,也可以以数据块为单位进行。所谓数据块,是指一串固定长度的字节,例如一个整型数据、一个结构体,或一个固定长度的数组等。 size_tfread(void*ptr,size_tsize,size_tn,FILE*fp); size_tfwrite(void*ptr,size_tsize,size_tn,FILE*fp);第11页,共16页,2023年,2月20日,星期一11.3格式化输入输出格式化输出的函数 intfprintf(FILE*fp,constchar*format,...);
intprintf(constchar*format,...); intfprintf(stdout,constchar*format,...); %[+/-][0][m.n][l]转换字符第12页,共16页,2023年,2月20日,星期一11.3格式化输入输出1.转换字符2.指定输出精度l3.指定输出长度m.n doublex=0.123; printf("%9.4f\n",x); 0.12304.空位填零0 intx=123; printf("%06d\n",x); 0001235.指定输出位置+字母输出形式示例d十进制整数10o八进制整数12x十六进制整数au无符号十进制整数10c单个字符As字符串ABCe指数形式的浮点数1.230000e-01f小数形式的浮点数0.123000ge和f中较短的一种0.123%百分号本身%charc[]=”ABCD”;printf("%-5.3s\n ",a);printf("%+5.3s\n",a);ABCABC第13页,共16页,2023年,2月20日,星期一11.3格式化输入输出格式化输入的函数 intfscanf(FILE*fp,constchar*format,...);
intscanf(constchar*format,...); intfscanf(stdin,constchar*format,...); scanf("%d%d",&x,&y); scanf("%d,%d",&x,&y); scanf("%10s",s);第14页,共16页,2023年,2月20日,星期一11.4常见面试题常见面试题1:调用fgets函数从文件中读取字符时,函数在满足什么条件时返回?常见面试题2:调用fprintf函数进行格式化输出时,如何指定输出的长度和对齐方式?第15页,共16页,2023年,2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北京市教育合同纠纷仲裁收费标准
- 金鹰颁奖礼仪培训方案
- 灭火与应急疏散培训
- 重庆市第九十四初级中学校2024-2025学年高二上学期期中考试政治试题(含解析)
- 19 C光的干涉 提升版2025新课改-高中物理-选修第1册(21讲)
- 海洋水文气象自动观测系统相关项目投资计划书范本
- 肝功能评定及肝功能储备课件
- 规划设计类答辩
- 碘缺乏病诊治指南
- 跨境物流行业发展趋势报告
- 2024至2030年中国安检门行业市场全景调查及投资策略研究报告
- 【基于西门子s7-1200PLC的变频调速电梯电气控制系统设计9700字(论文)】
- QC/T 1206.2-2024电动汽车动力蓄电池热管理系统第2部分:液冷系统
- 中国高血压防治指南(2024年修订版)图文解读
- 居家养老服务管理制度及流程
- 2024风力发电机组预应力基础锚栓笼组合件技术规范
- 2025数学步步高大一轮复习讲义人教A版第八章 §8.8 抛物线含答案
- 商业充电桩转让合同范本
- 2024年高考语文新高考Ⅰ卷试卷评析及备考策略
- 共享出行与公共交通绿色发展
- 消防安全专项整治方案及措施
评论
0/150
提交评论