- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2017-4-8
1
第13章 读写文件
主要内容
文件相关概念
读取文本文件
写文本文件
读写二进制文件
随机读写文件
2017-4-8
2
什么是文件?
文件相关概念
2017-4-8
3
文件即是存储在外部介质(例如硬盘)中的数据的集合。
每一个文件都有文件名(主干),文件存储位置以及文件的类型(扩展名)等信息。例如:
G:\tzhg\temp.txt
表示temp.txt这个文件存储在G盘下tzhg这个文件夹中,它是一个txt文件,即是一个记事本文件。
文件相关概念
2017-4-8
4
文件分为文本文件和二进制文件。
文本文件中的数据都被当作字符来对待,二进制文件中的数据会被当作。例如有一个整数:
123
如果将其当作文本文件来对待,则会被当作字符’1’,’2’, ‘3’来处理,存储时,会将这些字符对应的ASCII码存储到磁盘中,磁盘中存储的信息为:
如果将其当作二进制文件来处理,则会将整数123转化为二进制储到磁盘中。简单地说,数据在内存中是什么形式,在磁盘中就是什么形式。
文件相关概念
2017-4-8
5
为什么要读写文件?
文件相关概念
2017-4-8
6
程序运行期间,可能需要从文件中获取数据,这时需要对文件进行读操作,简称读文件
程序运行后的结果有时候需要永久保存起来,这时就需要将这些结果数据写(保存)到文件中,简称写文件。
文件相关概念
2017-4-8
7
第13章 读写文件
文件相关概念
读取文本文件
写文本文件
读写二进制文件
随机读写文件
2017-4-8
8
按文本读取文件的步骤
(1) 声明FILE指针变量(FILE是stdio.h中声明的结构体类型)
FILE * fp;
(2)打开文件
使用库函数fopen打开文件,fopen函数的返回值为文件的地址,即文件中第一个字节的地址号,将其赋给指针变量fp
fp = fopen(文件名字, 打开方式);
fopen函数的第一个参数是一个字符串,可以为文件的名字,或者为文件的绝对路径,例如:第一个参数取值:
“hello.txt”
或者:
“G:\\tzhg\\temp.txt”
当取值是文件名字时,要求该文件和当前C程序(可执行文件)在同一目录中
读取文本文件
2017-4-8
9
fopen函数的第二个参数也是一个字符串,用于决定打开文件的方式,即以文本方式还是以二进制方式打开文件。
如第二个参数的值为”r”,则表示以文本方式打开文件
如第二个参数的值为”rb”,则表示以二进制方式打开文件
(3)确定按文本读取文件
在步骤(2)中,让fopen函数的第二个参数取值为如下之一:
“r”:以只读方式打开文件,即按文本方式打开一个文件,程序将按文本方式读取该文件,如果文件不存在,fopen返回NULL。
“r+”:打开方式为读/写方式。例如:
fp = fopen(“G:\\tzhg\\temp.txt”, “r”)
使用fgetc( )函数或fgets( )函数读取文件
char fgetc(FILE * fp);
该函数从文件中读取一个字符,函数的参数fp表示与某一个文件相关联的指针,fgetc函数即从参数fp所关联的那个文件读取数据。每调用一次fgetc 函数,就从相关联的文件按顺序读取一个字符,该函数的返回值表示读取到的这个字符。例如,假设某个文本文件中的内容为abc,那么第一次调用fgetc函数读出的字符为’a’,第二次调用fgetc函数读出的字符为’b’, 第三次调用fgetc函数读出的字符为’c’。由于文件只有三个字符,第三次调用fgetc函数时就读到了文件的最后一个字符,如果再调用fgetc函数进行第四次读取,fgetc函数的返回值将是EOF(EOF是在stdio.h中定义的符号常量,值为-1, 是end of file的首字母缩写,表示文件的末尾)。程序可以通过fgetc函数的返回值是否等于EOF来判断是否已经读完了文件中的所有内容。
读取文本文件
2017-4-8
10
char * fgets(char str[], int n, FILE *p)
fegts函数从参数p所指向的文件一次读取n-1个字符,并将读取到的这n-1个字符存放到第一个参数所指定的字符数组str中,并在字符数组str的末尾添加一个空字符’\0’。每调用一次fegts函数就从p所指向的文件中读取n-1个字符,直到读到文件的末尾。最后一次读取到的字符可能不足n-1
您可能关注的文档
最近下载
- 2025智算中心行业研究报告.pdf VIP
- (2025秋新版)人教版三年级数学上册《观察物体》PPT课件.pptx VIP
- 油料配送操作规程.docx VIP
- NB∕T 20006.3-2021 压水堆核电厂用合金钢 第3部分:反应堆压力容器过渡段和法兰用锰-镍-钼钢锻件.pdf
- 残疾、弱智儿童送教上门教案12篇.docx VIP
- 【中外历史纲要上册】第一单元单元测试题及答案解析.pdf VIP
- NB_T 20006.5-2021 压水堆核电厂用合金钢 第5部分:反应堆压力容器封头用锰-镍-钼钢锻件.docx VIP
- 统编版高中语文选择性必修上册第二单元测试卷(Word版,含答案).pdf VIP
- NB_T 20006.4-2021 压水堆核电厂用合金钢 第4部分:反应堆压力容器接管嘴用锰-镍-钼钢锻件.docx VIP
- 电缆桥架安装及电缆敷设工程.docx VIP
文档评论(0)