C语言中的文件操作 []~( ̄▽ ̄)~*

 

目录

一· 文件是什么:

二·文件的分类:

1.程序文件:

2.数据文件:

三·文件名:

四· 文件的使用:

1.文件指针: 

2.文件指针的使用:

​编辑 

 3.文件的打开和关闭:

 

写入单个字符:(fputc)​编辑

读单个字符:(fgetc) ​编辑

 

写入一行数据:(fputs)

读指定长度的数据数据:(fgets)

 ​编辑

​编辑 

把结构体中的写入文件中:(fprintf)

从文件中读取数据放到结构体类型中: (fscanf)

 拓展:(sprintf)(sscanf)

sprintf:

 

sscanf:

 

以二进制写入文件:(fwrite)

读取二进制的文件: (fread)

五·文件的随机读写:

fseek: 

ftell:

rewind: 

六·文件读取结束的判定:

 feof函数:

文本文件: 

二进制文件:​编辑 


大家好!!!曳渔又来和大家分享啦~

希望可以获得大家的点赞和关注


一· 文件是什么:

   这里的文件和普通的文件是不一样的,这里的文件是以硬盘为载体来存储计算机上的信息,文件可以分为很多种类型。

   当你写代码后存放到堆栈上,想要再执行如删除,添加会很麻烦,这时我们使用文件会使这些指令变的更加简单,并且可以使数据变得持久话。

二·文件的分类:

   在程序设计中,我们的文件一般为两种:程序文件数据文件

1.程序文件:

   程序文件包含源程序文件(后缀为.c),目标文件(在Windows环境中为.obj),可执行程序 (在Windows环境中为.exe)。

2.数据文件:

   是程序运行时读写的数据。对于本次的分享的文章就是关于数据文件的。


三·文件名:

对于一个文件来说需要一个文件标识,以便使用,就像每个人的名字一样。

文件名包含3部分:文件路径+文件名主干+文件后缀 

四· 文件的使用:

 文件的使用分为三步走,1.打开文件 2.读文件/写文件 3.关闭文件 (就行把大象关进冰箱分为几步一样,当然冰箱得足够大)。


1.文件指针: 

  每次想要对文件进行操作的时候,我们都需要使用文件指针

使用原理:

    每次被使用的文件都在内存中开辟了一个相对的文件信息区 ,用来存放文件的相关信息(把比如:文件名,文件状态,文件的位置等),而这些信息都保存在一个结构体中,这个结构体是由系

统命名为——FILE,并且都是由FILE*来维护这个FILE结构体变量。


2.文件指针的使用:

FILE* pf;

 


 3.文件的打开和关闭:

     在编写程序的时候,在打开文件的同时,都会返回⼀个FILE*的指针变量指向该文件,也相当于建立了指针和文件的关系

   ANSIC 规定打开文件为fopen ,关闭文件为fclose

 


文件的使用方式:


文件的顺序读写: 

 


OK 咱们来实现一个例子:

 

 


写入单个字符:(fputc)


读单个字符:(fgetc) 

 


写入一行数据:(fputs)

 


读指定长度的数据数据:(fgets)

 

 


把结构体中的写入文件中:(fprintf)

 以文本的形式写入


从文件中读取数据放到结构体类型中: (fscanf)

 


 拓展:(sprintf)(sscanf)


sprintf:

将格式化的数据转化为字符串:

 

sscanf:

将字符串转化为格式化数据: 

 


以二进制写入文件:(fwrite)

 

 

 


读取二进制的文件: (fread)

 

 

 


五·文件的随机读写:

  就是指定我们要读写的位置。

fseek: 

 根据文件指针的位置和偏移量来定位文件指针


举几个例子: 

 

 


ftell:

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

 


rewind: 

 让文件指针的位置回到文件的起始位置

 


六·文件读取结束的判定:

 feof函数:

   作用:当文件读取结束的时候,判断是读取结束的原因是否是,遇到文件尾而结束

 文本文件:

 如果是 fgetc 时,feof 判断返回值是否是EOF

 如果是 fgets 时,feof 判断返回值是否是NULL

 二进制文件:

 都为 fread 判断,判断返回值与读取个数的大小,如果


文本文件: 

 


二进制文件: 

总结: 

   OK 今天的分享就到这里了,希望这次的分享可以帮助到你们,让我们下次再见啦~

    希望可以获得大家的点赞和关注,可以是博主拥有更大的动力!!!OK 再见! 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值