1 / 22
文档名称:

一文本流和二进制流二流文件三文件的打开函数fopen学习教案.pptx

格式:pptx   大小:180KB   页数:22页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

一文本流和二进制流二流文件三文件的打开函数fopen学习教案.pptx

上传人:wz_198613 2022/1/17 文件大小:180 KB

下载得到文件列表

一文本流和二进制流二流文件三文件的打开函数fopen学习教案.pptx

文档介绍

文档介绍:1
一、文本流和二进制流
内存中的信息会由于程序运行的结束而消失。程序运行
的结果需要另外稳定的介质加以永久保存,这种可以长期保
留数据的存储设备称为磁盘文件。下面几种是有影响的存储
方式:
1. ANSI 文件的打开函数fopen是为要操作的磁盘文件对应的数
据结构分配内存的函数,这是一个构建FILE的数据结构变量
的初始化函数,系统通过调用类似malloc的堆内存分配函数
完成了FILE型结构变量的内存分配。下面是fopen函数一个
简约的函数原型:
FILE * fopen (const char *filename, const char *mode);
函数返回一个指向堆空间的FILE *型的流文件指针。不
如确切地说该函数在堆空间诞生了一个FILE型结构变量。
第6页/共21页
第六页,共22页。
7
两个const char *型的入口参数对上面的结构成员执行
了部分初始化赋值。第一个参数filename是定位磁盘文件路
径的文件名,该文件名通常是双引号括起来的只读字符串。
在使用含路径的文件名时,注意“\”的使用,对于硬盘
中的文件d:\mydocu_1\ 应写成
“d:\\mydocu_1\\”
或进行如下的初始赋值:
const char *filename="d:\\mydocu_1\\";
第二个以只读字符串的形式出现的参数mode,界定文
件访问操作的模式。(其有效的取值组合和含义见下一页)
第7页/共21页
第七页,共22页。
8
mode 含义
"r" 以read only 方式打开一个文本文件,如果
输入文件不存在或未找到fopen失败
"w" 以write only方式打开一个文本文件,如果
输出文件已存在,内容将全覆盖
"a" 以写和append方式在文本文件末尾追加,如
果它不存在则先建立该文件
"r+" 以读或写的方式打开一个必须已经存在的文
本文件
"w+" 以读或写的方式打开一个空文件,如果给定的
文件名存在原来的内容将被冲洗
"a+" 以读/写和追加方式打开文件,如果该文件不存
在则先建立它
第8页/共21页
第八页,共22页。
9
"rb" 以只读方式打开一个binary输入文件,如果文件
不存在或未找到fopen失败
"wb" 以只写方式打开一个二进制输出文件,如果文件
已存在,内容将全覆盖
"ab" 以append方式在binary文件末尾追加,如果它
不存在则先建立该文件
"rb+" 以读或写的方式打开一个必须已经存在的二进制
文件
"wb+" 以读或写的方式打开一个空binary文件,如果文
件名存在原来的内容将被销毁
"ab+" 以读和追加方式打开二进制文件,如果该文件不
存在则先建立它
第9页/共21页
第九页,共22页。
10
指定文件的缺省操作类型取决于一个全局变量
_fmode,
[extern int _fmode;],系统设置的默认值是文本方式即:
_fmode=O_TEXT=0x4000
如果从文本方式切换为二进制模式,可以在程序中令:
_fmode= O_BINARY;
如果在打开文件发生错误,则fopen都返回NULL即0,
其潜在的原因有:
a. 以读模式打开一个并不存在的文件