文件操作

一.
1.
文件分为程序文件和数据文件。
系统把各种设备都当做一个文件来处理。
例如:终端键盘是输入文件。 显示屏和打印机是输出文件。

所谓文件,一般指储存在外部介质上的数据的集合。
一个文件有唯一一个文件标识(也就是文件名)。包括文件路径,文件名主干,文件后缀。
例如:C:\tesr\hello.c
文件路径:C:\test\
文件名主干:hello
文件名后缀:.c
2.
数据文件可以分为ASCII文件和二进制文件。
二进制文件又被称为映像文件。(储存方式为二进制数)
ASCII文件又被称为文本文件。(储存方式为ASSII码)
3.
文件缓冲区
ANSI C 标准采用“缓冲文件系统”处理数据文件。
系统自动的在内存区为程序中每一个正在使用的文件开辟一个文件缓冲区。从内存向磁盘输入数据必须先送到内存中的缓存区,装满缓存区后才一起送到磁盘文件中去。
4.
文件类型指针

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

一般用FILE *fp定义一个文件指针。

二.
1.
要对文件操作就要先打开这个文件。
等于吃鸡里面搜房子,你要先把这栋楼的门打开。
这时要用到fopen函数:fopen(文件名,文件打开方式)
[这里介绍了比较详细的文件打开方式]
(https://www.cnblogs.com/zhanggaofeng/p/5163141.html)
打开了房门之后,就可以进房子为所欲为了。
可以进行字符的读取,写入(注意:打开方式不同,系统允许对文件的操作也不同。)
2.
fgetc函数可以从fp指向的文件中读入一个字符。
fgtc(fp),若读成功,带回所读字符,失败则返回文件结束标志EOF(-1)
(相当于吃鸡里进房子,捡装备,放到自己的背包)
fputc函数可以把字符写到文件指针变量fp所指向的文件中。
fputc(ch,fp)输出成功返回值就是输出的字符,输出失败,则返回EOF(-1)
(相当于把不要的装备丢到房子里);

同时,也可以用fgets和fputs读写字符串
fgets函数 可以从fp指向的文件中读入一个长度为(n-1)的字符串,存放到字符子数组str中。
fgts(str ,n , fp),若读成功,返回地址str,失败则返回NULL
(相当于吃鸡里进房子,同时捡五个绷带,放到自己的背包)
fputs函数 可以把str所指向的字符串写到文件指针变量fp所指向的文件中。
fputs(str,fp)输出成功返回0,输出失败,则返回非0值。
(相当于把不要的好多个绷带丢到房子里);

在这个房子里进行了一系列不可描述的事情之后,就可以出去,把房子的门关上了。这时可以用到fclose函数。
fclose(文件指针)
这时文件指针就不在指向此文件了。
如果不关闭文件就结束程序运行,将会丢失数据。因为,在向文件写数据时,是先将数据输出到缓冲区,待缓冲区充满后才正式输出给文件。如果还没充满时程序运行结束,就有可能使缓冲区中的数据丢失。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页