【2017年整理】几个文件操作的函数

上传人:豆浆 文档编号:1032334 上传时间:2017-05-26 格式:DOC 页数:3 大小:33KB
返回 下载 相关 举报
【2017年整理】几个文件操作的函数_第1页
第1页 / 共3页
【2017年整理】几个文件操作的函数_第2页
第2页 / 共3页
【2017年整理】几个文件操作的函数_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《【2017年整理】几个文件操作的函数》由会员分享,可在线阅读,更多相关《【2017年整理】几个文件操作的函数(3页珍藏版)》请在金锄头文库上搜索。

1、1. fopen函数功能:打开一个文件函数原型:FILE * fopen(const char * path,const char * mode);相关函数:open,fclose,fopen_s,_wfopen所需库:返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在 errno 中。参数说明:参数 path 字符串包含欲打开的文件路径及文件名,参数 mode 字符串则代表着流形态。mode 有下列几种形态字符串:r 以只读方式打开文件,该文件必须存在。r+ 以可读写方式打开文件,该文件必须存在。rb+ 读写打开一个二进制文件,允许读写数据

2、。rw+ 读写打开一个文本文件,允许读和写。w 打开只写文件,若文件存在则文件长度清为 0,即该文件内容会消失。若文件不存在则建立该文件。w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。 (EOF 符保留)a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的 EOF 符不保留)wb 只写打开或新建一个二进制文件;只允许写数据。wb+

3、读写打开或建立一个二进制文件,允许读和写。ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。at+ 打开一个叫 string 的文件,a 表示 append,就是说写入处理的时候是接着原来文件已有内容写入,不是从头写入覆盖掉,t 表示打开文件的类型是文本文件,+号表示对文件既可以读也可以写。上述的形态字符串都可以再加一个 b 字符,如 rb、w+b 或 ab+等组合,加入 b 字符用来告诉函数库以二进制模式打开文件。如果不加 b,表示默认加了 t,即 rt,wt,其中 t 表示以文本模式打开文件。由 fopen()所建立的新文件会具有S_IRUSR|S_IWUSR|S_IRGRP|S_

4、IWGRP|S_IROTH|S_IWOTH(0666)权限,此文件权限也会参考 umask 值。有些 C 编译系统可能不完全提供所有这些功能,有的 C 版本不用 r+,w+,a+,而用rw,wr,ar等,读者注意所用系统的规定。2. fread函数原型:size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;参 数buffer用于接收数据的内存地址,大小至少是 size*count 字节.size单个元素的大小,单位是字节count元素的个数,每个元素是 size 字节.stream输入流返回值实际读取的元素

5、个数.如果返回值与 count 不相同,则可能文件结尾或发生错误.从 ferror 和 feof 获取错误信息或检测是否到达文件结尾.3. fwriteC 语言函数,向文件写入一个数据块.size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);注意:这个函数以二进制形式对文件进行操作,不局限于文本文件返回值:返回实际写入的数据块数目(1)buffer:是一个指针,对 fwrite 来说,是要获取数据的地址;(2)size :要写入内容的单字节数;(3)count: 要进行写入 size 字节的数据项的

6、个数;(4)stream:目标文件指针;(5)返回实际写入的数据项个数 count。说明:写入到文件的哪里? 这个与文件的打开模式有关,如果是 w+,则是从 file pointer指向的地址开始写,替换掉之后的内容,文件的长度可以不变,stream 的位置移动 count个数;如果是 a+,则从文件的末尾开始添加,文件长度加大。4. fseekint fseek(FILE *stream, long offset, int fromwhere);函数设置文件指针 stream 的位置。如果执行成功,stream 将指向以 fromwhere(偏移起始位置:文件头 0(SEEK_SET),当前

7、位置 1(SEEK_CUR),文件尾 2(SEEK_END))为基准,偏移 offset(指针偏移量)个字节的位置。如果执行失败( 比如 offset 超过文件自身大小),则不改变 stream 指向的位置。5. fclose功 能: 关闭一个流。注意:使用 fclose()函数就可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区。用 法: int fclose(FILE *stream);例子:#include int main() FILE *fp =NULL;char buffer16 = ;fp = fopen(C:Program FilesHPwenxue.txt, r+);if (NULL = fp)return 0;while(1 = fread(buffer, 8, 1, fp)buffer0 = a;fseek(fp, -8, 1);fwrite(buffer, 8, 1, fp);fseek(fp, 0L, 1); / 这一句话一定要加上,虽然看上去什么也不做,但是它改变了文件的状态,使得文件可以正常的进行读取,不然的话,fread 将一直返回 1,循环无法终止。return 0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号