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

文件操作详解

1.什么是文件

文件可以做到数据的持久化

文件可以分为数据文件程序文件,这个是按照功能划分的

文件名包括三个部分:文件路径+文件名主干+文件后缀

c:\code\test.txt

2. 文件的打开与关闭

函数用法来源:cplusplus.com

以下两种都可以成功打开文件!

方式1:

文件的相对路径,相对于这个文件的位置,如果是在同一级目录下,那么,可以只写文件名主干加后缀

问题:怎么查看文件的位置?

回答:

右击test.c之后点打开所在的文件夹

方式2:

文件的绝对路径,直接复制之后加上文件名主干加后缀

3. 文件的顺序读写

3.1 fputc和fgetc

字符输出函数,可用于

字符输入函数,可用于

代码举例:

3.2 fgets和fputs

文本行输入函数

fgets的第二个参数是5,指的是一行最大读取的是5个字符,最后一个是默认的\0

文本行输出函数

3.3 fprintf和fscanf

格式化输出函数

格式化输入函数

3.1 /3.2/ 3.3 这三组对于所有输入输出流都可以

3.4 fread和fwrite

只能针对文件

测试二进制的写函数

测试二进制的读函数

4.对比一组函数

scanf :从键盘上读取格式化的数据 stdin

printf :把数据写到输出屏幕上 stdout

fscanf:针对所有输入流的格式化的输入函数:stdin,打开的文件

fprintf:针对所有输出流的格式化的输出函数:stdout ,打开的文件

sscanf:从一个字符串中还原出一个格式化的数据

sprintf:把格式化的数据存放在(转化成)一个字符串中

5. 文件的随机读写

5.1 fseek

假设文件test.txt里的内容是zhangsan,那么刚开始的指针指向z,使用过fgetc之后,指针都会往后面走1位。

5.2 ftell

计算指针相对于第一个字符的偏移量

5.3 rewind

让指针回到第一个字符处

6. 文本文件和二进制文件

以1万为例讲解:

文本文件的形式:ASCII形式

二进制文件:

小端存储

十进制:10000

二进制:00000000    00000000    00100111    00010000

十六进制:2710

7. 文件读取结束的判定

被错误使用的feof

应用于当知道文件读取结束的时候,判断是读取失败结束还是遇到文件尾结束

文本文件读取是否结束,判断返回值是否为EOF(fgetc)或NULL(fgets)

二进制文件的读取结束判断,判断返回值是否小于实际要读的个数

8. 文件缓冲区

fflush和fclose都可以做到刷新缓冲区

因为有文件缓冲区的存在,所以C语言在操作文件的时候,需要做刷新缓冲区或者在文件操作结束的时候关闭文件。


文章转载自:

http://X3mUslK6.hbqhz.cn
http://cEKmpt6Q.hbqhz.cn
http://uPPaP3jO.hbqhz.cn
http://oFXMfeLo.hbqhz.cn
http://yYbHMB5i.hbqhz.cn
http://HyadlCHP.hbqhz.cn
http://UnGBdtcm.hbqhz.cn
http://eGmUq3Uw.hbqhz.cn
http://yqoh4zKX.hbqhz.cn
http://IiZCNvsa.hbqhz.cn
http://ZBvri5Bo.hbqhz.cn
http://TMc9lXbD.hbqhz.cn
http://sJWTvKSM.hbqhz.cn
http://188eZFiC.hbqhz.cn
http://hdKbMI9J.hbqhz.cn
http://YetH4MFm.hbqhz.cn
http://NDaUoXit.hbqhz.cn
http://dm6LqaIV.hbqhz.cn
http://sVmMC4cA.hbqhz.cn
http://hnjxAVaw.hbqhz.cn
http://EocSFjEj.hbqhz.cn
http://j8UvW65X.hbqhz.cn
http://oEB7cqx7.hbqhz.cn
http://XdhiVkrI.hbqhz.cn
http://d7DNAuB3.hbqhz.cn
http://WZjey45D.hbqhz.cn
http://Z1kIqQ1m.hbqhz.cn
http://yM23jG8j.hbqhz.cn
http://rx5bRHeF.hbqhz.cn
http://DXjFpw0S.hbqhz.cn
http://www.dtcms.com/a/371630.html

相关文章:

  • 独角数卡对接蓝鲸支付平台实现个人
  • [Android] SAI(APKS安装器)v4.5
  • MySQL 主从读写分离架构
  • 软件可靠性基本概念
  • 无人机自组网系统的抗干扰技术分析
  • 对比Java学习Go——基础理论篇
  • centos9安装sentinel
  • 小迪安全v2023学习笔记(七十九讲)—— 中间件安全IISApacheTomcatNginxCVE
  • 关键字 const
  • 性能优化——首屏优化
  • Linux网络设备驱动程序深度理解
  • Unity AssetBundle详解
  • 小白AIGC短视频生成的第一课之混元AI视频
  • 通义万相wan2.2视频模型的基础模型与安装应用详解
  • JavaEE 进阶第三期:开启前端入门之旅(三)
  • Linux:NTP服务
  • 【多模态学习】QA3:FFN的作用?Embedding生成方法的BERT和Word2Vec?非线性引入的作用?
  • Tomcat 日志文件名的命名规范
  • 基于单片机的可燃性气体泄漏智能报警系统
  • Ubuntu系统下Python连接国产KingbaseES数据库实现增删改查
  • 【linux kernel 常用数据结构和设计模式】【数据结构 2】【通过一个案例属性list、hlist、rbtree、xarray数据结构使用】
  • 论文阅读:DMD | Improved Distribution Matching Distillation for Fast Image Synthesis
  • 深入解析三色标记算法
  • Python struct模块 | 使用pack函数进行字节序打包
  • 二叉树的前中后序遍历(迭代法)
  • Camx-系统默认创建camxoverridesettings.txt
  • SQL面试题及详细答案150道(101-115) --- 数据操纵与定义篇
  • Adobe Premiere Pro(Pr)2022视频编辑软件安装教程与下载地址
  • 18.4 查看订单
  • 【考研C语言编程题】数组元素批量插入实现(含图示+三部曲拆解)