- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本章主要内容:
文件的分类
文件的打开与关闭
文件的读写
文件概述
前面章节所介绍的编程技术,所有的输入输出都只是涉及到键盘和显示器,这样,程序中的数据无法保存,每次运行程序都要重新输入数据。其实键盘和显示器等也属于文件,但是它们无法保存,这显然不方便,实际中,我们往往希望程序能长时间保存数据,以供程序能在较长的时间内持续使用,要做到这一点,就要用文件。所谓文件,就是存储在外部介质上的数据的集合,是操作系统数据管理的单位。
文件的分类
按文件的逻辑结构:
记录文件:由具有一定结构的记录组成(定长和不定长)
流式文件:由一个个字符(字节)数据顺序组成
按读写方式:
顺序文件:要求对文件的读写必须从文件头开始
随即文件:对文件的读写时随机的,利用系统函数将当前文件的 读写位置设置好,就可以从该位置进行读写操作。
按存储介质:
普通文件:存储介质文件(磁盘、磁带等)
设备文件:非存储介质(键盘、显示器、打印机等)
按数据的组织形式:
文本文件: ASCII文件,每个字节存放一个字符的ASCII码。把每一位数及符号都转换成字符,以ASCII码的形式输出到磁盘上存放。文本文件的一个字节对应于一个字符,便于对字符进行逐个处理,也便于输出字符,但一般占用存储空间较多,而且要花费时间进行二进制形式与ASCII码间的转换。
二进制文件:把数据按其在内存中的存储形式原样输出到磁盘上存放,可节省外存空间和转换时间,但一个字节并不对应一个字符,不能直接输出字符形式。
Eg: short 1000; 在内存中占用2个字节
文本文件形式(ASCII形式):
10000 = ‘1’、‘0’、‘0’、‘0’、‘0’ 对应的ASCII码分别为:31 30 30 30 30
在磁盘上存储形式为0011000000110000在内存中占用5个字节
二进制形式:
10000 =00010000
在磁盘上存储形式为00010000
在内存中占用2个字节
C语言文件指针
缓冲文件系统:高级文件系统,系统自动为正在使用的文件开辟内存缓冲区
每个被使用的文件都会在内存中开辟一个区,这个区叫做内存缓冲区,用来存放文件的有关信息(如文件名、文件状态、文件当前位置等等)。这些信息保存在一个结构体变量中,该结构体类型由系统定义,名字为FILE。在头文件stdio.h中有该结构体的声明。
FILE结构体定义如下:
typedef struct
{
char *_ptr; //文件输入的下一个位置
int _cnt; //当前缓冲区的相对位置
char *_base; //指基础位置(即是文件的起始位置)
int _flag; //文件标志
int _file; //文件的有效性验证
int _charbuf; //检查缓冲区状况,如果无缓冲区则不读取
int _bufsiz; //文件的大小
char *_tmpfname; //临时文件名
}FILE;
文件指针:FILE *fp;
用法:文件打开时,系统自动建立文件结构体,并把指向它的指针返回来,程序通过这个指针获得文件信息,访问文件。文件关闭时,它的文件结构体被释放。
文件的打开与关闭
想要对文件进行读写等操作,先要将其从外存中调入内存,即打开文件,对文件操作完毕之后,要将文件保存到外存,即要关闭文件。C语言文件操作的所有库函数都包含在头文件stdio.h中。
文件的使用方式:打开文件----文件操作(读/写)----关闭文件
系统自动打开3个标准文件:
标准输入---------------键盘 stdin
标准输出---------------显示器 stdout
标准错误输出---------显示器 stderr
打开文件:
·函数原型:FILE *fopen(char *name, char *mode);
·功能:按指定的方式mode打开文件名为name的文件。
·返回值:正常打开,返回指向文件结构体的指针;打开失败,返回NULL。
·使用方法:
#define FILE_NAME “a.txt”
#define OPEN_MODE “r”
FILE *fp = fopen(FILE_NAME, OPEN_MODE);
if(NULL == fp)
{
printf(“Can not open this file!\n”);
exit(0);
}
说明:
FILE_NAM
文档评论(0)