您的位置:首页 > 编程语言 > C语言/C++

C语言中的文件-文本流和二进制流

2017-08-13 00:42 183 查看
“文件”是一组相关数据的有序集合,这个数据集有一个名称,叫做文件名。

        所有的文件都通过流进行输入和输出进行操作,与文本流和二进制流相对应,文件可以分为文本文件和二进制文件,我们首先了解什么是文本流和二进制流。

        在C中引入了流(stream)的概念。它将数据的输入输出看作是数据的流入和流出,这样不管是磁盘文件或者是物理设备(打印机、显示器、键盘等),都可

看作一种流的源和目的,视他们为同一种东西,而不管其具体的物理结构,即对他们的操作,就是数据的流入和流出。这种把数据的输入输出操作对象,

抽象化为一种流,而不管它的具体结构的方法很有利于编程,而涉及流的输出操作函数可用于各种对象,与其具体的实体无关,即具有通用性。

        而在C语言中流主要有两种:

(1)文本流-text stream

所谓文本流是指在流中流动的数据是以字符形式出现。在文本流中,'\n'被换成回车CR和换行LF的代码0DH和0AH。而当输出时,则0DH和0AH本换成'\n'。

(2)二进制流

二进制流是指流动的是二进制数字序列,若流中有字符,则用一个字节的二进制ASCII码表示,若是数字,则用一个字节的二进制数表示。在流入流出时,对\n符号不进行变换。例如2001这个数,在文本流中用其ASCII码表示为:
'2' '0' '0' '1',50 48 48 49共占4字节。而在二进制流中则表示为:00000111
11010001 用十六进制就是07D1。只占两字节。


由此看出,二进制流比文本流节省空间,且不用进行对\n的转换,这样可以大大加快流的速度,提高效率。因而,对于含有大量数字信息的数字流,可以采用二进制流的方式;对于含有大量字符信息的流,则采用文本流的方式。

        总的对文件来说,文本文件和二进制文件定义如下:

       A、文本文件,也被称为ASCII文件,这种文件在保存时,每个字符对应一个字节,用于存放对应的ASCII码;

      B、二进制文件,不保存ASCII码,而是按照二进制的编码方式来保存文件内容。

     在C语言中,文件操作都是由库函数来完成的。

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息