学习笔记(30):C语言 从小白到大神: 入门篇-文件的开、关、读、写,实战操练

立即学习:https://edu.****.net/course/play/8088/178714?utm_source=blogtoedu

1. 文件的打开

文件在读或者写之前,我们必须要打开,在读或者写结束之后,我们必须要关闭,否则会造成资源泄露;

文件的打开使用fopen函数,调用方式如下:

FILE *fp;  //FILE是个结构,fp是指向结构FILE的指针变量

fp = fopen(文件名,使用文件的方式); //

例如:fp = fopen(“text1.txt”,”r”); //打开text1文件,使用的方式为只读;

fopen()这个函数返回一个指向text1文件的指针,这个指针被赋值给了fp。我们可以认为fp指向了text1文件。

FILE结构的意义:保存很多和文件有关的信息,如文件名,文件打开方式,当前文件位置等;

fopen()函数有可能执行失败,比如文件不存在,他就会执行失败,这个时候fopen()会返回一个空

打开方式表:

学习笔记(30):C语言 从小白到大神: 入门篇-文件的开、关、读、写,实战操练

 

2. 文件的关闭

文件只有在成功被fopen打开之后,才存在文件关闭的问题

为什么要关闭文件:

(1)释放这个文件占用的内存资源,如果很多资源都用了不释放,那么最后内存资源耗尽就会导致程序崩溃

(2)我们往文件里写数据时不会立即往磁盘上写,系统会把数据写到一个叫“缓冲区”这么一个地方,缓冲区满时系统才往磁盘文件上写,写完之后把缓冲区清空继续等待用户往文件中写数据。如果缓冲区数据没有满却退出了程序,那么缓冲区的数据就没来得及写到磁盘文件上,造成数据丢失。关闭文件这个动作会触发系统把缓冲区中的数据立即写到磁盘上,这就避免了缓冲区中的数据丢失的问题。

文件关闭函数的一般形式:

fclose(文件指针);

如:

if(fp != NULL)

fclose(fp); //fp就是fopen()的返回值

 

3. 文件的读写