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

C语言——文件

A1.文件

  • 文件一般是指存储在外部介质上数据的集合
  • 操作系统以文件为单位对数据进行管理的
  • 输入输出是数据传送的过程,数据如流水一样,输入输出流
  • 数据的组织形式和数据文件分为ASCII文件和二级制文件
    • 把内存中的数据按其在内存中的存储形式原样输出磁盘上存放

A2.文件类型指针

  • 不同的c编译系统的FILE类型包含的内容不完全相同,但大同小异
  • 在缓冲文件系统职工,每个被使用的文件都要在内存中开辟——FILE类型的区用于存放文件的有关信息
  • 文件型指针变量
    • FILE *fp;
  • fp是一个指向FILE类型结构体的指针变量,使fp指向某一个文件的结构体变量,从而通过该结构体变量文件信息访问该文件

A3.文件的打开与关闭

  • 打开函数调用:
    • FILE *fp;
    • fp=fopen(文件名,使用文件方式);
  • 关闭函数调用;
    • flose(文件指针);
    • 函数功能;
      • 使文件指针变量不指向该文件,文件指针变量与文件“脱钩”,后不再通过该指针对原来与其联系的文件进行读写操作
    • 返回值;
      • 关闭成功返回值0;否则返回EOF(-1)

A4.字符读写函数:fgetc()和fputc()

  • fputc函数向文件写入一个字符
  • 调用形式:fputc(ch,fp);
  • 函数功能
    • 将字符(ch的值)输入到fp所指向的文件中
  • 返回值
    • 输入成功,则返回值是输出的字符
    • 输入失败,则返回一个EOF
  • fgetc函数从文件读入一个字符
  • 调用形式:ch=fgetc(fp);
  • 函数功能
    • fgetc函数带回一个字符,赋给ch
  • 返回值
    • 在执行fgetc函数读字符时遇到文件结束符,函数返回文件解释标志EOF

A5.字符串读写函数;fgets()和fputs()

  • fgets函数
  • char *fgets(char *str,int n,FILE *fp)
  • 函数功能
    • 从指定的文件读入一个字符
  • 返回值
    • 执行fgets函数成功,返回为str数组首元素的地址
    • 一开始遇到文件尾或读数据出错,返回NULL
  • fputs函数
  • int fputs(const str,FILE *fp)
  • 函数功能
    • fputs函数可以向指定的文件输出一个字符串

A6.格式化读写函数:fscanf()和fprintf()

  • 函数调用:
    • fprintf(文件指针,格式字符串,输出表列)
    • fscanf(文件指针,格式字符串,输入表列)
  • 函数功能
    • 从磁盘文件中读入或输出字符

A7.数据块读写函数

  • 数据块读写函数用二进制方式读写文件
  • 函数调用:
    • fread(buffer,size,count,fp)
    • fwrite(buffer,size,count,fp)
  • 参数说明
  • buffer:指针
    • 对fread来说,是读入数据的存放地址
    • 对fwrite来说,是要输出数据的地址(均指起始地址)
    • size:要读写的字节数
    • count:要进行读写多少size字节的数据项
    • fp:文件型指针
  • 注意
    • 用fprintf和fscanf函数对磁盘文件读写,由于输入时要将ASCII码转换成二进制形式,输出时又要将二进制形式转换成字符,内存和磁盘频繁交换数据情况下,建议用fread和fwrite函数

A8.文件定位

  • 位置指针用来指示当前的读写位置
  • 在对字符文件进行顺序读写时,文件的位置指针指向文件开头,如果需要对文件进行读的操作就读第一个字符,文件位置指针顺序向后移以为,在下次执行读的操作,就将指针指向第二个字符读入
  • 想在一个文件的原有数据之后添加新数据,把文件位置指针移到文件尾,再写入数据,则为文件的追加

A9.位置指针定位函数:fssk

  • 函数功能:
    • 改变文件的位置指针
  • 函数调用形式
    • fssk(文件类型指针,位移量,起始点)
  • 起始点
    • 文件开头 SEEK_SET 0
    • 文件当前位置 SEEK_CUR 1
    • 文件末尾 SEEK_END 2
  • 位移量
    • 以起始点为基点,向前移动的字节数。一般要求long型

A10.求位置指针偏移值函数:ftell()

  • 函数功能
    • 得到流式文件中的当前位置,用相对文件的位移量来表示
  • 返回值
    • 返回当前位置,出错时返回-1L

A11.位置指针复位函数:rewind()

  • 函数功能
    • 使位置指针重新返回文件的开头,此函数没有返回值

A12.出错检查

  1. ferror函数
  • 调用形式
    • ferror(fp)
  • 返回值
    • 返回0,未出错
    • 返回非0,出错
    • 调用一个输入输出函数后立即检查ferror函数的值,否则信息丢失。执行fopen函数时,ferror函数初始值自动置0
  1. clearerr函数
  • 调用形式
    • cleareer(fp)
  • 函数作用
    • 使文件错误标志和文件解释表示置为0
  • 只要出现错误标志,就一直保留,直到对同一文件调用clearerr函数或rewind函数,或其他一个输出输入函数。

相关文章:

  • Elastic字段映射(_source,doc_value,fileddata,index,store)
  • 【C语言】解决C语言报错:Array Index Out of Bounds
  • EasyExcel自定义处理器扩展指定行修改样式包括字体颜色
  • 没等来百度惊艳的All in AI,却等来了国产之光的盘古大模型 5.0
  • java-正则表达式 1
  • Android使用MPAndroidChart 绘制折线图
  • Java学习 - MySQL存储过程、函数和触发器练习实例
  • Java中的设计模式:实战案例分享
  • labelme使用笔记:目标检测数据集标注和语义分割数据集批量生成
  • kafka第二篇——主题创建,主题分区副本分配策略
  • PWR电源控制
  • IDEA services模块无法启动springboot服务(添加了springboot但是为空白)
  • HTTP/2 的 ALPN(应用层协议协商)
  • 【前端】Git 常用
  • C语言| 宏定义
  • C# 免费离线人脸识别 2.0 Demo
  • Consul Config 使用Git做版本控制的实现
  • Effective Java 笔记(一)
  • ES6--对象的扩展
  • Fabric架构演变之路
  • Intervention/image 图片处理扩展包的安装和使用
  • java第三方包学习之lombok
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Mithril.js 入门介绍
  • nfs客户端进程变D,延伸linux的lock
  • python 装饰器(一)
  • STAR法则
  • SwizzleMethod 黑魔法
  • 服务器之间,相同帐号,实现免密钥登录
  • 给新手的新浪微博 SDK 集成教程【一】
  • 回顾2016
  • 基于遗传算法的优化问题求解
  • 免费小说阅读小程序
  • 入手阿里云新服务器的部署NODE
  • -- 数据结构 顺序表 --Java
  • 系统认识JavaScript正则表达式
  • 一、python与pycharm的安装
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • #Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量
  • (09)Hive——CTE 公共表达式
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (C语言)fgets与fputs函数详解
  • (力扣)循环队列的实现与详解(C语言)
  • (十八)三元表达式和列表解析
  • (四)图像的%2线性拉伸
  • (算法)硬币问题
  • (转)原始图像数据和PDF中的图像数据
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .JPG图片,各种压缩率下的文件尺寸
  • .NET Core Web APi类库如何内嵌运行?
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET处理HTTP请求
  • .NET开源快速、强大、免费的电子表格组件