当前位置: 首页 > news >正文

网站模板 首饰预定深圳网站建设软件定制公司

网站模板 首饰预定,深圳网站建设软件定制公司,有哪些做微场景的没费网站,继续浏览此网站(不推荐)文件处理 一、文件的类型(一)文本文件和二进制文件 (二)程序文件和数据文件数据文件按照二进制储存 二、文件的打开和关闭(一)文件指针(二)文件的打开和关闭1、fopen2、fclose &…

文件处理

  • 一、文件的类型
    • (一)文本文件和二进制文件
    • (二)程序文件和数据文件
      • 数据文件按照二进制储存
  • 二、文件的打开和关闭
    • (一)文件指针
    • (二)文件的打开和关闭
      • 1、fopen
      • 2、fclose
    • (三)文件的打开方式
  • 三、文件读写函数
    • (一)fgetc
    • (二)fputc
    • (三)fgets
    • (四)fputs
    • (五)fscanf
    • (六)fprintf
    • (七)fwrite
    • (八)fread
    • (九)sscanf
    • (十)sprintf
    • (十一)fseek
    • (十二)ftell
    • (十三)rewind
  • 四、文件缓冲区
  • 结束语

一、文件的类型

(一)文本文件和二进制文件

按照文本的组织信息来分,文件可以分成二进制文件和文本文件

(二)程序文件和数据文件

按照文件功能来分,可以分成程序文件和数据文件

数据文件按照二进制储存

在这里插入图片描述
在这里插入图片描述

二、文件的打开和关闭

(一)文件指针

每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是由系统声明的,取名FILE.

struct _iobuf {char *_ptr;int   _cnt;char *_base;int   _flag;int   _file;int   _charbuf;int   _bufsiz;char *_tmpfname;};
typedef struct _iobuf FILE;

不同的C编译器的FILE类型包含的内容不完全相同,但是大同小异。
每当打开一个文件的时候,系统会根据文件的情况自动创建一个FILE结构的变量,并填充其中的信息

(二)文件的打开和关闭

1、fopen

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

用来打开文件。打开成功的同时,函数会返回一个文件指针类型,相当于文件和指针之间建立联系。

int main() {FILE* pf = fopen("test.txt", "w");if (pf != NULL) {fputs("man, what can i see", pf);fclose(pf);}return 0;
}

可以观察到我们的字符串已经被写入到了文件之中。
在这里插入图片描述

2、fclose

int fclose ( FILE * stream );

用来关闭文件,如果文件成功关闭,那么就会返回0,如果失败,返回EOF;

(三)文件的打开方式

文件使用方式 					含义 			如果指定文件不存在
“r”(只读) 		为了输入数据,打开一个已经存在的文本文件  		出错
“w”(只写) 		为了输出数据,打开一个文本文件 		        新建文件
“a”(追加) 		向文本文件尾添加数据      					新建文件
“rb”(只读)	    为了输入数据,打开一个二进制文件 				出错
“wb”(只写)	    为了输出数据,打开一个二进制文件 		   	    新建文件
“ab”(追加) 	向一个二进制文件尾添加数据      				新建文件
“r+”(读写)		为了读和写,打开一个文本文件 					出错
“w+”(读写) 	为了读和写,建议一个新的文件      				新建文件
“a+”(读写) 	打开一个文件,在文件尾进行读写      			新建文件
“rb+”(读写) 	为了读和写打开一个二进制文件 					出错
“wb+”(读写)   为了读和写,新建一个新的二进制文件     	        新建文件
“ab+”(读写) 	打开一个二进制文件,在文件尾进行读和写      	新建文件

三、文件读写函数

在这里插入图片描述

(一)fgetc

int fgetc ( FILE * stream );

成功 : 将返回字符读取(提升为 int 值)。
如果位置指示器位于文件末尾,则该函数返回 EOF 并设置流的 EOF 指示符 (feof)。

失败 :
返回类型为 int 以适应特殊值 EOF,该值表示失败。
如果发生其他读取错误,该函数也会返回 EOF,但会设置其错误指示器 (ferror)。

(二)fputc

int fputc ( int character, FILE * stream );

成功 : 将返回写入的字符。
失败 : 返回 EOF 并设置错误指示器 (ferror).

(三)fgets

char * fgets ( char * str, int num, FILE * stream );

成功 : 如果读取到字符该函数返回 str,如果一个都没有读取到,返回空指针。读取字符时遇到文件末尾,设置 eof 指示(feof)
失败 : 则设置错误指示符 (ferror) 并返回空指针

(四)fputs

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

成功 : 将返回一个非负值。
失败 : 该函数返回 EOF 并设置错误指示器 (ferror)。

(五)fscanf

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

成功 : 该函数返回已成功填充的参数列表的项目数。读取字符时遇到文件末尾,设置 eof 指示(feof)
失败 : 该函数返回 EOF 并设置错误指示器 (ferror)。
如果在解释宽字符时发生编码错误,该函数会将 errno 设置为 EILSEQ。

(六)fprintf

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

成功 : 将返回写入的字符总数。
失败 : 则设置错误指示符 (ferror) 并返回负数。
如果在写入宽字符时发生多字节字符编码错误,则将 errno 设置为 EILSEQ 并返回负数。

(七)fwrite

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

成功 : 返回成功写入的元素总数。
失败 : 如果此数字与 count 参数不同,则写入错误会阻止函数完成。在这种情况下,将为流设置错误指示器 (ferror)。

(八)fread

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

成功 : 返回成功读取的元素总数。
失败 : 如果此数字与 count 参数不同,则表示读取时发生读取错误或达到文件末尾。在这两种情况下,都设置了正确的指示器,可以分别使用 ferror 和 feof 进行检查。

(九)sscanf

int sscanf ( const char * s, const char * format, ...);

成功 : 该函数返回已成功填充的参数列表中的项目数。
失败 : 如果在成功解释任何数据之前输入失败,返回 EOF。

在这里插入图片描述
在这里插入图片描述

(十)sprintf

成功 : 将返回写入的字符总数。此计数不包括自动附加在字符串末尾的附加 null 字符。
失败 : 则返回一个负数。

在这里插入图片描述
在这里插入图片描述

(十一)fseek

定位文件指针

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

成功 :该函数返回零。
失败 :返回非零值。
如果发生读写错误,则设置错误指示器 (ferror)。

在这里插入图片描述
orgin可以取值:
在这里插入图片描述

(十二)ftell

求文件指针相对于起始位置的偏移量

long int ftell ( FILE * stream );

成功 : 将返回位置指示器的当前值。
失败 : 返回 -1,并将 errno 设置为系统特定的正值。

(十三)rewind

将文件指针指向文件的首地址,可以fseek来达到相同的作用

void rewind ( FILE * stream );

在这里插入图片描述

四、文件缓冲区

ANSIC 标准采用“缓冲文件系统”处理的数据文件的,所谓缓冲文件系统是指系统自动地在内存中为程序中每一个正在使用的文件开辟一块“文件缓冲区”。从内存向磁盘输出数据会先送到内存中的缓冲区,装满缓冲区后才一起送到磁盘上。如果从磁盘向计算机读入数据,则从磁盘文件中读取数据输入到内存缓冲区(充满缓冲区),然后再从缓冲区逐个地将数据送到程序数据区(程序变量等)。缓冲区的大小根据C编译系统决定的。

在这里插入图片描述

结束语

相信有了这篇文件操作,下次再也不用担心忘记重新学啦。亲爱的小伙伴,不要忘记支持博主哦!
在这里插入图片描述

http://www.yayakq.cn/news/919817/

相关文章:

  • 盘锦网站建设制作wordpress摘要两端对齐
  • 网站开发所以浏览器兼容模式修改wordpress登录密码
  • 上海建筑建材业网站wordpress 文章 版权
  • 携程网站建设的优缺点国家开发公司
  • 西安做网站收费价格wordpress meiwen主题
  • 要加强网站内容的建设网站建设第一步做什么
  • 网站建设怎么申请空间义乌百度网站制作
  • 临沂专业网站制作公司2345浏览器下载安装
  • 用手机制作自己的网站贵阳专业网站建设
  • 阿里云做网站怎么样国内小程序最好的公司
  • 上海网站优化公司排名wordpress仿站pdf
  • 护肤品网站建设前的行业分析深圳建设工程质量检测中心
  • 做网站cnfg小学生简短小新闻
  • 湖南营销型网站建设价格wordpress线上聊天插件
  • 三亚网站建设平台wordpress4.8.1模板
  • 网站如何三合一网站无收录的原因
  • 为什么wordpress主题访问很慢株洲百度seo
  • 大连科技学院官方网站的建设与放holy荷勒公司介绍
  • 江西做网站哪家好网站设计师是什么专业
  • 为什么要建手机网站gif图片动态素材网站
  • 茂名网站设计哈尔滨建站怎么做
  • 对电子商务网站建设的感想seo案例分享
  • 微商需要做网站吗免费服务器虚拟化
  • 广州建网站兴田德润可信开发html网页的软件
  • 做网站挣外快仿牌外贸网站
  • 怎么选择锦州网站建设安徽省工程建设信息网职称查询
  • 电子商务网站平台建设预算不包括wordpress调用搜索结果
  • 竞价托管网站建设网页搭建服务
  • 注册查询官方网站个人网站制作的主要内容
  • 北京sem网站上海网站建设网站制