黑马程序员-C语言-文件

来源:互联网 发布:心酸的句子知乎 编辑:程序博客网 时间:2024/05/04 00:01

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

开场白:
对一门变成语言入门,首先要具备4个条件:一个语法,三大类库,怎么讲呢?就是一定要记住所有的语法结构,同时熟练使用字符串、集合、及文件操作三组类库。
字符串是基本信息的载体,无论输入输出都需要,集合是基本数据类型的载体,可以表现很多数据结构,文件操纵是信息持久化的标准,没有文件,就没有信息持久化。
所以文件操作不可不深入理解,熟练掌握


从用户的角度:基本文件、设备文件
从编码角度:二进制文件、ASCII码文件

对文件的操作步骤:
1、引入头文件

include  <stidio.h>

2、定义文件指针

FILE *fp ;

fp是FILE结构的指针变量,通过fp即可找寻存放某个文件信息的结构变量,按照按结构变量提供的信息找到该文件,实施对文件的操作,习惯上也笼统地把fp称为指向某个文件的指针。

3、打开文件

fopen("a.txt","r");

建立指针和文件的各种联系,使文件指针指向该文件。
r:文件必须存在,只读(+可写)
w:只写,如果文件不存在,直接创建一个新的文件(+可读)
a:向已存在的(如果没存在,直接创建)文件追加新的信息
打开文件出错,fopen函数会返回空指针值NULL(+可读)
t:打开一个ASCII码文件
b:打开一个二进制文件

可见二进制文件在这里是体现优越性的
补充:能被记事本正常读取的文件都是ASCII码文件,如果出现一堆乱码,就是二进制文件。

4、文件操作(文件读、写)

int a;fread(&a,sizeof(int),1,fp);//如果读取的是一个整形数据,那就用一个*整形变量*去接受fread(&students[i],sizeof(struct Student),1,fp);//如果是读取的是一个特定结构体数据,就用*一个特定结构体数组元素*去接受,每次读取一个特定结构体类型的字节大小
int a;fwrite("&a",sizeof(int),1,fp);char *str="Hello world!\n";fwrite(str,strlen(str),1,fp);

格式化读写:

fscanf(文件指针,格式字符串,输入列表);fscanf(fp,"%d%s",&i,s);fprintf(文件指针,格式字符串,输出列表);fprintf(fp,"%d%s",j,ch);

5、文件关闭

fclose(文件指针);

避免文件的丢失等错误


自己的一点思考:把数据放到文件中,才能保持数据的持久性,把文件操作分为5个步骤可以更加清晰的操作,其中关闭文件操作容易遗漏,文件打开的方式不同就会产生不一样的结果。

这里写图片描述
我用Xmind整理的思维导图

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

0 0
原创粉丝点击