C文件与文件的操作

C文件

文件:存储在外部介质上数据的集合。
在程序设计中,文件主要分为程序文件与数据文件。

程序文件:源程序文件(后缀为.c)、目标文件(后缀为.obj)、可执行文件(后缀为.exe)(此文件内容为程序代码);
数据文件:程序运行中输出到磁盘(或其他外部设备)的数据、在程序运行过程中供读入的数据(此文件内容为供程序运行时读写的数据)。

文件标识分为三部分:文件路径、文件名主干、文件后缀

文件后缀含义
docWord生成的文件
txt文本文件
dat数据文件
cc语言源程序文件
cppc++源程序文件
forFORTRAN源程序文件
pasPascal源程序文件
ppt电子幻灯文件
bmp图形文件

数据文件可再分为ASCLL文件(文本文件)和二进制文件(映像文件)

typedef struct
{ short level;            //缓存区“满”或“空”的程度
  unsigned flags;         //文件状态标志
  char fd;                //文件标志符
  unsigned  char hold;    //如缓存区无内容则不读取字符
  short bsize;            //缓存区的大小
  unsigned char*buffer;   //数据缓存区的位置
  unsigned char*curp;     //指针当前的指向
  unsigned   istemp;      //临时文件指示器
  short token;            //用于有效性检查
 }FILE;

注:声明FILE结构体类型的信息需包含在头文件“stdio.h”中。

在编写程序中,打开或关闭文件在一般情况下,都是在对指针进行相关的操作。在打开文件的过程中建立指针与文件之间的联系,指定一个指针变量指向该文件,并通过此指针变量对文件进行读写。

打开文件:为文件建立相应的信息区(用来存放有关文件的信息)和文件缓冲区(用来暂时存放输入输出的数据);
关闭文件:撤销文件信息区和文件缓冲区,使文件指针变量不再指向该文件,继而使得读写文件失败。

用fopen打开文件
fopen的调用方式为:
fopen(文件名,使用文件方式);

eg:
  fopen("al","r");    // 使用读入(“r”表示读入)的方式打开名称为“al”的文件,fopen函数的返回值是指向“al”文件的指针(即al文件信息区的起始地址)。
   FLFE*fp;           //定义一个指向文件的指针变量fp
   fp=fopen("al","r");//将fopen函数的返回值赋给指针变量fp
文件使用方式含义若指定文件不存在
“r”(只读)为输入数据打开一个已存在的文本文件出错
“w”(只写)为输出数据打开一个文本文件建立新文件
“a”(追加)向文本文件尾添加数据出错
“rb”(只读)为输入数据打开一个二进制文件出错
“wb”(只写)为输出数据打开一个二进制文件建立新文件
“ab”(追加)向二进制文件尾添加数据出错

这里写图片描述
前面讲了打开文件需调用fopen函数,有打开就会有关闭,关闭文件则需要调用fclose函数,其调用形式为:
fclose(文件指针);
eg:
fclose(fp)

关闭文件操作成功返回值为0,否则返回EOF(-1)。
若未关闭文件,则会导致数据丢失。

在向文件输入数据时,数据先输入到缓冲区,待缓冲区满后才会输出到文件。
若缓冲区未满而程序结束,有可能引起缓冲区内数据丢失。
而调用fclose函数关闭文件时,先会把缓冲区数据输入到磁盘文件中再撤销文件信息区,如此便可保证数据不再丢失。

详细知识点可参考《C程序设计》—–谭浩强 著

在重新回顾学生学籍管理系统的程序时
遇到了某些语句却不甚明白其用法
便想着要重温这些知识点

一是提醒自己及时回顾相应知识点
二是希望可以帮助到同样对此知识点抱有疑惑的网友们

若有错误,还望各位大佬们指正,在下不胜感激并会及时修改。
嗯 江湖再见啦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值