Loading... 任何文件使用之前必须**打开fopen()**,使用后必须**关闭fclose()** ![](https://blog.fivk.cn/usr/uploads/2021/02/551670385.png) ##### 打开文件 FILE *pf = NULL; pf = fopen(文件名,文件使用方式); <span style="color:#FF0000">1.文件名:</span> > 要操作的文件的名字、可以包含路径信息 <span style="color:#FF0000">2.文件使用方式:</span> > ”读“、”写“、”文本“或”二进制“等 <span style="color:#FF0000">3.fp文件指针:</span> > 指向被打开的文件,失败返回空,成功返回相应指针 <div class="tip inlineBlock info"> 我们的难点时使用方式 </div> 例: ```C FILE* fp_passwd = NULL; fp_passwd = fopen("passwd.txt", "rt"); //rt是读写 if (fp_passwd == NULL) { printf("file open error"); } ``` 说明: > 以只读方式打开当前目录下一个叫passwd.txt > > 返回一个文件指针赋给fp_passwd > > 判断打开是否成功,如果失败,返回NULL(重要) ##### 第一个参数的几种形式 ###### 1.相对路径: > fp_passwd = fopen("passwd.txt","r");//同例子 > > 打开当前目录passdw文件:源文件(源程序)所在目录 > fp_passwd = fopen("./test/passwd.txt","r"); > > 打开当前目录(test)下passwd.txt文件 > fp_passwd = fopen("../passwd.txt","r"); > > 打开当前目录上一级目录(相对当前目录)passwd.txt文件 ###### 2.绝对路径 > fp_passwd = fopen("c://test/passwd.txt","r"); > > 打开C盘test目录下一个叫做passwd.txt文件 ##### 第二个参数的几种形式(打开文件的方式) * 读写权限:r w a + * 打开方式:b t(可以省略) <div class="tip inlineBlock success"> 指打开方式,与文件的储存方式无关,与操作系统有关 </div> 一、r:以<span style="color:#FF0000">只读</span>方式打开文件 1. 文件不存在返回NULL 2. 文件存在返回文件指针,进行后续的读操作 二、w:以<span style="color:#FF0000">只写</span>方式打开文件 1. 文件不存在,以指定文件名创建此文件; 2. 若文件存在,<span style="color:#FF0000">清空文件内容</span>,进行写操作; 3. 如果文件打不开(比如文件只读),返回NULL 三、a:以<span style="color:#FF0000">追加</span>方式打开文件 1. 文件不存在,以指定文件名创建此文件按(同w) 2. 若文件存在,从文件的结尾处进行写操作 四、+:同时以<span style="color:#FF0000">读写 </span>打开指定文件 五、b:以二进制的方式打开文件 六、t:以文本的方式打开文件(可以省略) ###### window平台下 > 1.以”文本“方式打开文件 > > 当读取文件的时候,系统会将所有的”\r\n“转换成”\n“ > > 当写入文件的时候,系统会将”\n“转换成”\r\n“写入 > > 2.以”二进制“方式打开文件,则 读\写 都不会进行这样的转换 ###### 在Unix/Linux平台 > ”文本“与”二进制“模式没有区别。 > > \r\r作为两个字符原样输入输出 ###### 打开方式的组合形式 | 模式 | 功能 | | :-: | :-: | | r | 以只读方式打开一个文本文件(不创建文件) | | w | 以只写方式打开文件(使文件长度截断为0字节,创建一个文件) | | a | 以添加方式打开文件,即在末尾添加内容,当文件不存在时,创建文件用于写 | | r+ | 以可读、可写的方式打开文件(不创建新文件) | | w+ | 以可读、可写的方式打开文件(使文件长度为0字节,创建一个文件) | | a+ | 以添加方式打开文件,打开文件并在末尾更改文件(如果文件不存在,则创建文件) | <div class="tip inlineBlock success"> 后面添加b表示以二进制方式打开打开。如 rb,r+b(rb+) </div> ##### 关闭文件 <span style="color:#FF0000">1.调用的一般形式是:</span> > fclose(文件指针); > > 文件指针:指向要关闭的文件 <span style="color:#FF0000">2.返回值</span> > 关闭成功:返回值为0. > > 关闭失败:返回值为非零. ##### 文件的顺序读写 对文件操作最常用的是:“读”和“写”,C语言提供了很多对文件读写的函数: > 字节读写函数:fgetc和fputc > > 字符串读写函数:fgets哈fputs > > 数据块读写函数:fread和fwrite > > 格式化读写函数:fscanf和fprintf <div class="tip inlineBlock success"> 以上函数可完成对文件内容的顺序读写 </div> 最后修改:2021 年 02 月 18 日 © 禁止转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏