相信大家对文件的概念都已经比较熟悉了,比如我们常常使用的word文档、txt文件、源文件等。我们知道文件是数据源的一种,其作用是保存数据。那么在利用C语言进行程序的编写时我们利用到的文件又是什么呢?下面课课家笔者为大家简单介绍如何在C语言中的文件的概念和作用。
众所周知,在操作系统中为了统一对各种硬件的操作和简化接口,不同的硬件设备也都会被看成一个文件,对这些文件的操作等同于对磁盘上普通文件的操作。比如通常把显示器称为标准输出文件,printf就是向这个文件输出,把键盘称为标准输入文件,scanf就是从这个文件获取数据。下面是常见硬件设备与文件的对应关系:
在这里大家需要注意的地方是,在C语言中硬件设备可以看成文件,有些输入输出函数不需要我们指明到底读写哪个文件,系统已经为它们设置了默认的文件,当然我们也可以更改,比如让printf向磁盘上的文件输出数据。操作文件的正确流程为:打开文件-->读写文件-->关闭文件。文件在进行读写操作之前要先打开,使用完毕要关闭。所谓打开文件,就是获取文件的有关信息,比如文件名、文件状态、当前读写位置等,这些信息会被保存到一个FILE类型的结构体变量中。关闭文件就是断开与文件之间的联系,释放结构体变量,同时禁止再对该文件进行操作。在C语言中,文件有多种读写方式,可以一个字符一个字符地读取,也可以读取一整行,还可以读取若干个字节。文件的读写位置也非常灵活,可以从文件开头读取,也可以从中间位置读取。
◎文件流
我们知道所有的文件(保存在磁盘)都要载入内存才能处理,所有的数据必须写入文件(磁盘)才不会丢失。数据在文件和内存之间传递的过程叫做文件流,类似水从一个地方流动到另一个地方。数据从文件复制到内存的过程叫做输入流,从内存保存到文件的过程叫做输出流。
文件是数据源的一种,除了文件,还有数据库、网络、键盘等;数据传递到内存也就是保存到C语言的变量(比如整数、字符串、数组、缓冲区等)。我们把数据在数据源和程序(内存)之间传递的过程叫做数据流(DataStream)。相应的,数据从数据源到程序(内存)的过程叫做输入流(InputStream),从程序(内存)到数据源的过程叫做输出流(OutputStream)。
输入输出(Inputoutput,IO)是指程序(内存)与外部设备(键盘、显示器、磁盘、其他计算机等)进行交互的操作。几乎所有的程序都有输入与输出操作,如从键盘上读取数据,从本地或网络上的文件读取数据或写入数据等。通过输入和输出操作可以从外界接收信息,或者是把信息传递给外界。
总的来说打开文件就是打开了一个流。
本次浅析C语言文件的讲解到此就暂告一段落,如果以后有什么内容进行补充或者修改的话,笔者会继续在此进行相关内容的补充或者修改的工作,同时也欢迎大家对本次的讲解提出自己的建议和补充。最后笔者希望本次的讲解对大家学习C语言能够起到一定的帮助作用!