欢迎来到天天文库
浏览记录
ID:40238568
大小:755.50 KB
页数:44页
时间:2019-07-28
《C语言程序设计(第二版) 王宏志,韩志明主编 C语言程序设计11》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第十一章文件C语言程序设计11.1C语言文件概述11.2缓冲文件输入输出系统11.3非缓冲文件输入输出系统第11章文件9/18/20212《C语言程序设计》-第十章11.1C语言文件概述文件:存储在外部介质上数据的集合,是操作系统数据管理的单位。文件分类:按文件的逻辑结构:记录文件:由具有一定结构的记录组成(定长和不定长)。流式文件:由一个个字符(字节)数据顺序组成。按存储介质:普通文件:存储介质文件(磁盘、磁带等)。设备文件:非存储介质(键盘、显示器、打印机等)。按数据的组织形式:ASCII文件(文
2、本文件):每个字节存放ASCII码,表示一个字符。二进制文件:数据按其在内存中的存储形式原样存放。11.1.1文件概述9/18/20213《C语言程序设计》-第十章例:整数110000011011110011000内存存储形式0011011110011000二进制形式0011100110111000001110000011100000111000ASCII形式文本文件特点:存储量大,转换为二进制速度慢,直观易记。二进制文件特点:存储量小,无需转换。但因一个字节不对应一个字符,故不能直接输出其字符形式。
3、9/18/20214《C语言程序设计》-第十章文件系统缓冲文件系统(高级文件系统):系统自动为正在使用的文件开辟内存缓冲区。非缓冲文件系统(低级文件系统):由用户在程序中为每个文件设定缓冲区。磁盘文件输出文件缓冲区输入文件缓冲区程序数据区a缓冲文件系统缓冲区指令区程序用户数据区磁盘文件非缓冲文件系统11.1.2缓冲文件系统和非缓冲文件系统9/18/20215《C语言程序设计》-第十章11.1.3标准输入输出库函数在C语言编译系统中,由于计算机键盘输入和显示器的输出是使用最多的I/O操作,因此,C编译系
4、统将键盘、显示器分别定义为标准的输入设备文件和标准的输出设备文件。在没有专门指定输入输出设备的情况下,所有的I/O操作均由键盘和显示器完成。1.标准通用输入输出函数scanf():格式化输入函数。printf():格式化输出函数。2.标准字符输入输出函数getche()、getchar()、getch()、putchar()9/18/20216《C语言程序设计》-第十章1、getche()函数。(1)函数原型:intgetche(void);(2)功能:getche()函数的原型在conio.h中,它
5、的功能是从键盘上读取一个字符并将该字符自动显示在屏幕上。getche()函数有两个变体,一个是getchar()函数,它是UNIX系统的字符输入函数的原形。另一个是getch()函数,它的功能和getche()基本一致,只是它不把读入的字符回显到屏幕上,可以利用这一特点来避免不必要的显示。(3)返回值:正常情况下其返回值是读到字符的ASCII码值,遇到文件结束或出错时,返回EOF。也可以通过标准输入设备换向功能从磁盘文件中读取字符的代码。9/18/20217《C语言程序设计》-第十章【例11.1】把输
6、入的小写字母变成大写字母输出,并统计字符个数。#include"stdio.h"main(){intch,count=0;while((ch=getchar())!=EOF){count++;if(ch>=’a’&&ch<=’z’)putchar(ch-’a’+’A’);elseputchar(ch);}printf("Thecharacterstotalto:%d",count);}运行输入:Thestudentisaboy!运行结果:THESTUDENTISABOY!Thecharacters
7、totalto:219/18/20218《C语言程序设计》-第十章2、字符串输入输出函数gets()、puts()(1)gets()函数函数原型:char*gets(char*str);功能:接收来自标准输入的一个字符串,并把它放入str所指向的字符数组中。返回值:正常返回指向该字符串的指针,否则返回空指针NULL。gets()函数读取字符串的个数没有限制,编程时注意保证str所指向的字符数组应该有足够大的空间。它读到换行符或读入EOF时结束,EOF或换行符不放入字符串中而是将它们转换为空字符’ ’
8、,作为字符串的结束符,即自动转换成C语言的字符串。由于发生错误和读到文件结束标志这两种情况下返回值均为空指针,所以应该使用feof()函数和ferror()函数来区别两种不同的情况。9/18/20219《C语言程序设计》-第十章【例11.2】读入一个字符串到字符数组中,并输出它的长度。#include"stdio.h"main(){charstr[80];gets(str);printf("%d",strlen(str));}运行输入:howarey
此文档下载收益归作者所有