文件的相关内容(一)

这一部分以应用为主,不是很重要。

目录

文件的打开

什么是文件?

程序文件

数据文件

文件名

文件的打开和关闭

文件指针

文件的打开和关闭

文件的读写

文件的顺序读写

文件的打开

为什么使用文件?

数据持久化,把数据放在硬盘文件,数据库等方法。

什么是文件?

硬盘上的文件是文件。在程序文件根据功能,文件分为程序文件,数据文件;

程序文件

包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。

数据文件

文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。

这一部分主要讲的是数据文件。

文件名

一个文件要有唯一的文件标识,以便用户识别和引用。

文件名包含3部分:文件路径和+文件名主干+文件后缀

例如:c:\code\test.txt

文件的打开和关闭

文件指针

缓冲文件系统中,关键概念是“文件指针”,每一个被使用的文件都在内存中开辟了一个文件休息去,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置,这些信息是存放在一个结构体变量中的,该结构体是有系统声明的),取名FILE.

在VS2022中FILE的定义为:

在vs2013中的FILE的定义为:

 用FILE* 类型的指针用来维护FILE结构。

下面我们可以创建一个FILE* 的指针类型,定义pf是一个指向某一文件的文件休息区(是一个结构体变量),通过文件休息区的信息能够访问该文件。文件一旦创建成功,就会创建一个文件信息区,如果文件要扩大,则相对应的文件信息区也要扩大。通过文件指针变量能够找到相对应的文件。文件信息区维护文件。

文件的打开和关闭

文件在读写之前要先打开文件,在使用结束之后关闭文件。

fopen函数的定义:FILE* pf = fopen( const char* filename, const char* mode),第一个参数是要打开的文件名,在第一个参数中有两种路径,一种是绝对路径(类似于C:\Users\HERUIXU\Desktop\test.txt)。一种是相对路径(类似于test,txt),第二个参数是文件的打开形式。

文件的打开模式有:

文件打开的代码如下:(文件在打开的时候会出现打开失败的情况,会返回空指针)。

 文件关闭的代码是:

 在打开文件后进行读写文件的操作。

任何一个c程序打开,默认打开3个流:stdin(标准输入流,对应键盘),stdout(标准输出流,对应屏幕),stderr(标准错误流)的类型为FILE*。

文件的读写

文件的顺序读写

在文件中进行读写操作的函数;这些函数基本上报错后会返回空指针。

 fputc能一个一个读;循环进行读。

 fgetc函数在遇到EOF的时候停下,不在继续往下进行读取。(如果这个ch=fgetc(pf)不单独加括号会出现乱码的情况。)

 

fputs函数: (写一行内容)

在写文件的时候,如果文件中之前有内容的时候,会将原来的内容进行删除,在进行输入操作。

如果想要在文件内容后进行追加,需要将文件模式改为“a"。

 如果在想要在文件中写出两行内容,我们需要加上换行符“\n",如果不加换行符,则会将内容打印在一行上。

 fgets函数:定义里有三个参数:第一个参数为要将数据放在哪里的指针,第二个参数是要读取几个字符,如果读取5个字符,则只显示4个字符,因为有一个‘\0'。第三个参数是要读取的文件的指针。

fprintf 函数:类似于printf,只是在前面多了一个指针。

 fscanf函数:类似于scanf,只是在前面多了一个指针。

fwrite函数:在二进制文本中使用,这个函数有四个参数(参数一是要输入的首地址的指针,参数二是该元素的大小,参数三是该元素的个数,参数四是文件指针。)

fread函数:参数与fwrite函数的参数相同;

Guess you like

Origin blog.csdn.net/2301_77868664/article/details/130918630