前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言 文件操作

C语言 文件操作

作者头像
发布2024-04-30 21:18:07
650
发布2024-04-30 21:18:07
举报
文章被收录于专栏:转自CSDN转自CSDN

? ? ? ? 什么时文件? ? ? ?

文件用于保存数据,可以做到数据持久化的保存

? ? ? ? 磁盘上的文件就是文件

但是在程序设计中,文件一般分为两种,程序文件和数据文件

? ? ? ? 程序文件

包括源程序文件(.c),目标文件(.obj)可执行文件(.exe)

? ? ? ? 数据文件

文件内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件.

? ? ? ? 文件名

? ? ? ? 一个文件要有唯一的文件标识,方便用户识别和引用

? ? ? ? 文件包括 路径+名字+后缀

? ? ? ? 例如 C;\a\a.txt

? ? ? ? 文件标识一般称为文件名

? ? ? ? 二进制文件和文本文件

? ? ? ? 根据数据的组织形式,数据文件分为文本文件和二进制文件

? ? ? ? 如果以二进制的形式储存的文件,就是二进制文件

? ? ? ? 如果是以ASCLL码的形式存储文件,需要在存储前转换,使用时转换,那么这样的文件就是文本文件.

? ? ? ? 数据在文件中,字符用ASCLL形式存储,数值型的数据可以用ASCLL存储也可以用二进制形式储存. 例如10000的存储

? ? ? ? 而且VS上也可以打开二进制文件

? ? ? ? 文件的打开和关闭?

????????流和标准流

????????流

????????程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输?输出操作各不相同,为了?便程序员对各种设备进??便的操作,我们抽象出了流的概念,我们可以把流想象成流淌着字符的河。 C程序针对?件、画?、键盘等的数据输?输出操作都是通过流操作的。 ?般情况下,我们要想向流?写数据,或者从流中读取数据,都是要打开流,然后操作。

????????标准流?

? ? ? ? C语言程序在启动的时候,默认打开 stdin stdout stderr三个流,分别是标准输入流,标准输流,?标准错误流.

? ? ? ? stdin,由键盘输入 scanf就是从标准输入流读取数据

? ? ? ? stdout标准输出流,大多数的环境中输出给显示器,printf就是输出

? ? ? ? stderr输出到显示器

? ? ? ? 它们都是 file* 文件指针

????????文件指针

? ? ? ? 缓冲文件系统中,关键的概念是"文件类型指针",简称"文件指针"

? ? ? ? 每个被使用的文件都在内存中开辟了了一个文件信息区,用来存放文件的相关信息(文件的名字,文件的状态,和文件当前的位置).这些信息都存放在一个结构体变量中,由系统声明,取名为FILE

代码语言:javascript
复制
FILE *pf;

?pf是指向FILE类型数据的指针变量,可以使pf指向某个文件的文件信息去(结构体变量).通过文件信息去的信息来范围跟文件,也就通过文件指针变量就能找到与它关联的文件.

????????文件的打开和关闭?

? ? ? ? 先打开再关闭?,打开文件的时候会返回一个FILE*类型的指针变量,相当于建立了指针和文件的关系

? ? ? ? fopen函数打开文件 fclose用来关闭文件

? ? ? ? 文件的读写

代码语言:javascript
复制
void rewind (FILE* stream)

? ? ? ?文件的随机读写

? ? ? ? fseek

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

代码语言:javascript
复制
int fseek (FILE * stream, long int offset,int origin);

? ? ? ? 分别对应 起始位置 当前位置 文件末尾?

? ? ? ? ?ftell

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

代码语言:javascript
复制
long int ftell(FILE * stream);
? ? ? ? rewind?

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

代码语言:javascript
复制
void rewind(FILE * stream);

特殊指令

? ? ? ? feof

? ? ? ? feof无法用返回值判断文件是否结束,它用于当文件结束时候,判断是读取结束的原因是否是遇到文件结尾结束

? ? ? ? 1.文本文件是否结束时EOF(fgetc)和NULL(fgets)

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

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ? ? ? ? 什么时文件? ? ? ?
  • ? ? ? ? 磁盘上的文件就是文件
  • ? ? ? ? 程序文件
  • ? ? ? ? 数据文件
  • ? ? ? ? 文件名
  • ? ? ? ? 二进制文件和文本文件
  • ? ? ? ? 文件的打开和关闭?
    • ????????流和标准流
      • ????????流
      • ????????标准流?
  • ????????文件指针
  • ????????文件的打开和关闭?
  • ? ? ? ? 文件的读写
    • ? ? ? ?文件的随机读写
      • ? ? ? ? fseek
      • ? ? ? ? ?ftell
      • ? ? ? ? rewind?
  • 特殊指令
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com