C文件
文件:存储在外部介质上数据的集合。
在程序设计中,文件主要分为程序文件与数据文件。
程序文件:源程序文件(后缀为.c)、目标文件(后缀为.obj)、可执行文件(后缀为.exe)(此文件内容为程序代码);
数据文件:程序运行中输出到磁盘(或其他外部设备)的数据、在程序运行过程中供读入的数据(此文件内容为供程序运行时读写的数据)。
文件标识分为三部分:文件路径、文件名主干、文件后缀
文件后缀 | 含义 |
---|---|
doc | Word生成的文件 |
txt | 文本文件 |
dat | 数据文件 |
c | c语言源程序文件 |
cpp | c++源程序文件 |
for | FORTRAN源程序文件 |
pas | Pascal源程序文件 |
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程序设计》—–谭浩强 著
在重新回顾学生学籍管理系统的程序时
遇到了某些语句却不甚明白其用法
便想着要重温这些知识点
一是提醒自己及时回顾相应知识点
二是希望可以帮助到同样对此知识点抱有疑惑的网友们
若有错误,还望各位大佬们指正,在下不胜感激并会及时修改。
嗯 江湖再见啦~