- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十章文件 - 西安交通大学
第十章 文件; 10.1 文件概述
10.2 文件的打开与关闭
10.3 文件的读写操作
10.4 文件的定位
10.5 程序设计举例
习题
实验十 ;10.1 文件概述 ;;; 从图10-1中可见,用二进制形式输出数值,可节省外存空间和转换时间,但一个字节并不对应一个字符,不能直接输出字符形式。而用ASCII形式输出与字符一一对应,一个字节代表一个字符,因而便于对字符进行逐个处理,也便于输出字符。但一般所占的存储空间较多,且要花费二进制形式与ASCII形式间的转换时间,所以通常中间结果数据需要暂时保存在外存上以后又需要输入到内存的,常采用二进制文件保存。
; C语言对文件的处理一般有两种方法:“缓冲文件系统”和“非缓冲文件系统”。
所谓“缓冲文件系统”是指系统自动地在内存区为每一个正在使用的文件开辟一个缓冲区。从内存向磁盘输出数据必须先送到内存中的缓冲区,当装满缓冲区后才一起送到磁盘去。如果从磁盘向内存读入数据,则一次从磁盘文件将一批数据输入到内存缓冲区,然后再从缓冲区逐个地将数据送到程序数据区,如图10-2所示。;程序数据区;;10.1.2 文件类型指针;stdio.h文件中的文件类型声明如下:
typedef struct
{
short level;
unsigned flags;
char fd;
unsigned char hold;
short bsize;
unsigned char *buffer;
unsigned ar *curp;
unsigned istemp;
short token
}FILE;
如:FILE *fp;
其中fp就是一个指向FILE类型的指针。
在缓冲文件系统中,最重要的概念是“文件指针”。
;10.2 文件的打开与关闭;;表10-1 文件使用方式;10.2.2 文件的关闭;10.3 文件的读写操作; 10.3.1 读写一个字符的函数
1.fputc函数
函数fputc的作用是把一个字符写到磁盘文件中去。
格式:fputc(ch,fp);
说明:(1)把内存中的一个字符(在ch变量中)写入到fp
所指向的磁盘文件中去。
(2)若成功,则返回该字符,否则返回EOF(-1)。
(3)EOF在stdio.h文件中被定义为符号常量,值为-1。;【例10.1】从键盘输入一行字符,将其写入文件test.txt中。
程序如下:
#include stdio.h
main()
{
FILE *fp;
char ch;
if((fp=fopen(test.txt,w))==NULL)
{ printf(cannot open this file\n);
exit(0); }
else
for(ch=getchar();ch!=\n;ch=getchar())
fputc(ch,fp);
fclose(fp)
};图10-3 例10.1运行结果
;说明:程序中首先定义了文件指针fp,并以“写”的方式打开ASCII文件test.txt,若文件打开成功,程序进入for循环,使用getchar函数从键盘读入单个字符,并将其写入该文件,然后继续从键盘输入下一个字符,直到遇到回车符。;2.fgetc函数
函数fgetc的作用是从指定的文件读入一个字符,该文件必须是以读或读写方式打开的。
格式:ch= fgetc(fp)
说明:(1)fp为文件指针变量,ch为字符变量。fgetc函数是从fp所指向的磁盘文件中读取一个字符,赋给ch。
(2)如果遇到文件结束符,函数返回一个结束标志EOF(即-1)。; 【例10.2】将例10.1中建立的test.txt文件中的内容显示在屏幕上。
程序如下:
#include stdio.h
main()
{
FILE *fp;
char ch;
if((fp=fopen(test.txt,r))==NULL)
{ printf(cannot open this file\n);
exit(0); };else
for(ch=fgetc(fp);ch!=EOF;ch=fgetc(fp))
putchar(ch);
fclose(fp);
}
程序运行后屏幕上显示:
study;说明:
程序以“读”的方式打开文件test.txt,若文件打开成功,程序进入for循环,使用fgetc函数从文件中读入单个字符,并将其用putchar函数显示在屏幕上,然后继续从文件中读入下一个字符,直到遇到文件
您可能关注的文档
最近下载
- 柑橘基地质量管理体系.pdf
- CAD2007入门教程_图文版.ppt VIP
- TSG Z7005—2015 特种设备无损检测机构 核准规则_可搜索.pdf VIP
- DB4419_T 24-2024 社区社会组织孵化服务指南.docx VIP
- 安全可靠分布式事务型数据库技术要求.pdf VIP
- SH3124-2001T 石油化工给水排水工艺流程设计图例.pdf VIP
- 电缆敷设图集 12D101-5.pdf VIP
- 《银行业法律法规与综合能力》课件.pptx VIP
- 2024新信息科技四年级《第二单元 用编码描绘世界》大单元整体教学设计.docx
- 淮北矿业2015年矿瓦斯综合治理“六项指标”考核办法淮北矿业2015年矿井瓦斯综合治理“六项指标”考核办法.doc VIP
文档评论(0)