第一句子大全,网罗天下好句子,好文章尽在本站!

c语言文件操作整理

时间:2011-07-10

遗憾的是,事实总难遂人所愿,为了保持与过去不能同时进行读写操作的程序的向下兼容性,一个输入操作不能随后直接紧跟输出操作,反之亦然

友情提示:本文共有 2568 个字,阅读大概需要 6 分钟。

推荐《c陷阱与缺陷》

FILE *fp;fp = fopen(file, "r+");

编程者也许认为,程序一旦执行上述操作完毕,就可以自由地进行读取和写入的操作了。遗憾的是,事实总难遂人所愿,为了保持与过去不能同时进行读写操作的程序的向下兼容性,一个输入操作不能随后直接紧跟输出操作,反之亦然。如果同时进行输入和输出操作,必须在其中插入fseek函数调用。

这个陷阱把我坑了一把,所以将c库函数文件操作学习整理一番,方便自己以后查阅。

- FILE结构体在stdio.h中定义的FILE结构体。

#ifndef _FILE_DEFINED struct _iobuf { char *_ptr; //文件输入下一个位置 int _cnt; //当前缓冲区相对位置 char *_base; //文件起始位置 int _flag; //文件标志 int _file; //文件描述符 int _charbuf; //检查缓冲区状况,如果无缓冲区则不读取 int _bufsiz; //缓冲区大小 char *_tmpfname; //临时文件名 }; typedef struct _iobuf FILE;#define _FILE_DEFINED#endif

- 文件的打开

FILE *fopen(const char *path, const char *mode);

1.功能按照mode规定的方式去打开path里指定文件。2.参数path是个字符指针,指向打开或建立文件的字符串mode是指向文件处理的字符串的指针

3.返回值正常:被打开文件的FILE指针异常:NULL,未成功打开

- 文件的关闭

int fclose(FILE *fp);

1.功能关闭由fp指出的文件,调用操作系统提供的文件关闭功能。2.参数fp:打开文件的FILE指针3.返回值正常:0异常:EOF

- 文件读取①字符读取

int fgetc(FILE *stream);

1.功能从stream所指文件中读取一个字符2.参数stream:要读取字符文件的FILE指针3.返回值正常:返回读取字符异常:返回EOF

②字符串读取

char *fgets(char *s, int size, FILE *stream);

1.功能从stream中读取大小为size-1的字符,最后加上字符串结束符""2.参数s:接收字符串的地址,数组或是指针size:读取字符大小stream:读取的文件的FILE指针3.返回值正常:字符串首地址(char *s的地址)异常:NULL

使用feof或是ferror去判别是否到达文件尾部和发生错误。

- 文件的写入①字符写入

int fputc(int c, FILE *stream);

1.功能把字符c写入stream指向的文件2.参数c:字符stream:写入的文件的FILE指针3.返回值正常:写入字符异常:EOF②字符串的写入

int fputs(const char *s, FILE *stream);

1.功能将str写入stream指向的文件中2.参数s:写入字符串stream:要写入字符串的文件的FILE指针3.返回值正常:写入的字符串长度异常:返回NULL

使用feof或是ferror去判别是否到达文件尾部和发生错误。

③格式化数据写入

int fprintf(FILE *stream, const char *format, ...);

1.功能与printf功能相同,写入文件中2.参数stream:写入的文件的FILE指针format:字符串指针,其中包含写入数据的格式3.返回值无

- 二进制形式的读写

①二进制形式读取文件数据

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);

1.功能按二进制形式将stream指向的文件的size*nmemb的数据读到ptr数据区去2.参数ptr:viod指针类型,读到数据存放的首地址size:数据块的大小,字节数nmemb:一次读多少数据块stream:要读取数据文件的FILE指针3.返回值正常:实际读取数据块个数异常:0(具体通过feof()和ferror()判定)②二进制形式写数据

size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);

与fread相反

③二进制形式读取一个整数

int getw(FILE *stream);

④二进制形式写入一个整数

int putw(int w, FILE *stream);

- 文件状态检查①文件结束

int feof(FILE *stream);

1.功能判断文件是否结束2.返回值0:文件未结束1:文件结束②文件读写出错

int ferror(FILE *stream);

1.功能检查读写stream指向的文件是否出错2.返回值0:无错误1:出错③错误标志清除

void clearerr(FILE *stream);

1.功能清楚stream指向的文件的错误标志

- 文件的操作的文件①当前文件位置

long ftell(FILE *stream);

1.功能文件开头与当前的偏移量2.返回值正常:位移量异常:-1

②倒带

void rewind(FILE *stream);

1.功能文件位置指针重新指向开头

③fseek

int fseek(FILE *stream, long offset, int whence);

1.功能使文件定位移到指定位置:基于whence的相对offest位置处2.参数offset:字节位移量whence:SEEK_SET 0 文件开头SEEK_CUR 1 文件当前位置SEEK_END 2 文件末尾3.返回值正常:当前位置异常:-1

- exit()函数

void exit(int status);

1.功能使程序立即终止执行,将缓冲区数据输出并关闭所有打开文件2.参数

本文如果对你有帮助,请点赞收藏《c语言文件操作整理》,同时在此感谢原作者。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
第六篇:C语言中结构体与文件操作相关知识点梳理

第六篇:C语言中结构体与文件操作相关知识点梳理

...通过数据库,另外一种就是通过文件永久保存数据。文件操作将是本文要总结的第二个核心知识点,将程序中的数据永久保存到磁盘上,方便下次读写操作。结构体也是二级考纲中的内容。同时,结构体与数组可以构成结构体数...

2019-09-09 #经典句子

C语言操作文件 如何使用fseek随意移动读写数据?

C语言操作文件 如何使用fseek随意移动读写数据?

...个文件指针,接着调用fread()、fwrite()函数对文件进行读写操作,都是从文件的起始位置进行读写操作。那么,如果文件有30个字节,想调用fopen()打开文件之后,可以跳到第9个字符进行读取,只读取第9个字符?C语言提供了fseek()...

2011-09-09 #经典句子

Gox语言中通过SSH远程执行命令及上传下载文件

Gox语言中通过SSH远程执行命令及上传下载文件

...剂”语言,当然需要有便捷的网络编程能力和远程服务器操作的能力,没有让人失望的是,这确实也正是它所擅长的。再次说明,Gox语言的安装很简单,只需要去官网下载单个的可执行文件或压缩包,加压到任意文件夹即可。当...

2023-06-29 #经典句子

电脑常用文件名后缀即扩展名汇总

电脑常用文件名后缀即扩展名汇总

...扩展名(Filename Extension)也称为文件的后缀名,是Windows操作系统用来标记文件类型的一种机制,或者符号。扩展名几乎是每个文件必不可少的一部分。如果一个文件没有扩展名,那么操作系统就无法辨别这个文件,不能区分它...

2007-12-20 #经典句子

小白都能学会的Python技术 解决csv和txt的文件处理 提高效率!

小白都能学会的Python技术 解决csv和txt的文件处理 提高效率!

...多的介绍,接下来干货开始吧,具体看步骤。对于文件的操作,首先是需要先导入“os”这个包,在Python里,os是个标准库,不需要安装,直接拿来使用即可。python的格式,如下所示:步骤1:import os# 导入os模块步骤2:设置保存...

2024-01-19 #经典句子

C语言头文件被include后都发生了什么?为何不能在头文件定义变量

C语言头文件被include后都发生了什么?为何不能在头文件定义变量

头文件是C语言的一个重要组成部分,这种类型的文件名一般以 .h 结尾,h 表示 header,因此被称为“头文件”。头文件里一般存放公开的函数原型,数据类型等内容,其他模块需要使用这些函数或者数据类型时,只需包含相应头...

2012-05-24 #经典句子

C语言这些常见标准文件该如何使用?很基础也很重要

C语言这些常见标准文件该如何使用?很基础也很重要

...个文件时,系统会返回一个结构体,这个结构体有对此文件操作的所有信息调用fopen时(fopen的返回值: 如果成功返回FILE结构体地址,失败返回NULL;返回的文件流指针标识了打开的那个文件),系统返回这个结构体地址,比如如下所...

2024-01-08 #经典句子

如何拆分pdf成多个文件?你可以试试这个妙招

如何拆分pdf成多个文件?你可以试试这个妙招

...般是使用web、pc版软件进行文档拆分。打开pc软件,进入操作窗口,在六种功能类型中,点击【PDF操作】——【PDF分割】,然后进入对应界面,导入文档后,还可以自定义分割的页码范围,模式。分割好文档后,在窗口里可以看...

2007-04-22 #经典句子