C语言处理文件基础知识:文件、流和键盘输入

经验分享2019/12/5 20:18:54阅读:819

文件是一块存储信息的存储器区域,可能这样说很多同学不理解,通俗来说,就是在磁盘上划分一块区域用于存放特定的数据,比如文本数据就是文本文件,音频数据就是音频文件。当然,文件夹也是一个特殊的文件。通常,文件被保存在电脑磁盘、U盘、光盘等存储介质上。文件对于计算机系统来说太重要了,编写的C语言程序需要用一个文件保存,程序也需要文件保存,比如编译C语言源文件的编译程序。

文件

一些程序需要能够访问特定的文件。比如编译程序,它就需要访问C程序源文件,编译完成之后再关闭该文件。其它程序,像word、记事本等,不仅能访问文件,还能写入文件。

C语言提供了很多操作文件的库函数,具有打开、读、写和关闭文件的作用,使用这些库函数,程序可以很方便的操作文件。实际上,C可以调用系统上的基本文件工具来处理文件,这被称作低级I/O,比如C可以调用windows的API来处理文件,但是因为世界上不止有windows系统,还有Linux、Unix等众多系统,系统之间具有差异性,比如文件存储的方式不同,因此C不可能创建一个通用的低级I/O函数的标准库。

文件的打开和关闭

C用另外一种方式处理文件,称为标准I/O包,其中包括创建用于处理文件的I/O函数的标准模型和标准集。使用这用方式,系统之间的差异由特定的C实现来处理,所以现在用C和文件打交道的是一个统一的接口。

从概念上来说,C程序处理一个流而不是直接处理文件。流是一个理想化的数据流,实际输入或输出映射到这个数据流,这意味着具有不同属性的多种类型的输入由流表示,会具有更多统一的属性。比如从一个本地文件中读取数据和从服务器上请求文件有很多差异,但是通过流来表示,将会有很多通用的方式来操作两者。

文件系统

这里我们需要注意,C对待输入输出设备和对待存储设备上的普通文件相同。也就是说,键盘、显示屏等输入输出设备对C来说也是一个文件。特别注意,键盘和显示设备是作为每个C程序自动打开的文件来对待的。键盘输入由一个被称为stdin的流表示,而到显示屏、打印机或其他输出设备上的输出由一个被称为stdout的流表示。getchar()、putchar()、printf()和scanf()函数都是标准I/O包的成员,这些函数同这两个流打交道。

本文系小博客网站原创,转载请注明文章链接地址