windows下C/C++中的二进制文件与文本文件

来源:互联网 发布:rss源码 编辑:程序博客网 时间:2024/06/01 18:06

二进制文件和文本文件与fopen( ),fwrite( ),fread( )等这些文件操作函数中的二进制与文本两种方式没有什么必然的联系,不能搞混淆了,或者这样说,二进制文件可以用文本方式读写,文本文件当然也可以用二进制的方式读写了。至于文件操作函数,windows和Linux两种主流os基本保持一致,从函数到具体格式,这里就不做详细介绍。


这里主要区别一下文本文件和二进制文件,这里从下面几个方面比较:

(1)定义:文件是在计算机内存中以二进制表示的数据在外部介质上的另一种存放形式。二进制文件是包含在ASCⅡ及扩展ASCⅡ字符中编写的数据或程序指令的文件,一般是可执行程序,图形,图像,声音等文件;文本文件也叫做ASCⅡ文件,它的每一个字节存放的是可表示为一个字符的ASCⅡ代码的文件。文本文件是基于字符编码,二进制文件是基于值编码。

(2)存取方式:不论是文本文件还是二进制文件,都是以二进制的格式在计算机内存中存储,可以通过ultraedit这款软件进行查看。不论是文本文件还是二进制文件,都是以ASCⅡ的格式输出,所以二进制文件由于是基于值编码,经常输出乱码或根本输不出内容到的txt文档。

举个例子:在文件中写入ASCⅡ可编码范围内的任一个数字,比如36,

 文本文档中的输出:

计算机内存中:  24(0010 0100)转换成十进制就是36

 

在比如选一个超出ASCⅡ编码范围的数字,150

文本文档中的输出:

计算机内存中:

可以看出文件都是以ASCⅡ码转换格式输出,而此时的96(1001 0110)转换成十进制就是150 没有相对应的ASCⅡ编码,故不能在txt文档中看到输出


一句话:二进制文件和文本文件都是以二进制的格式在计算机内保存,以ASCⅡ的格式转换输出。

/*************************************************************************************************************************************************/

划清界限


文本方式读写和二进制方式读写的不同:

        文本方式读写会自行进行格式转换,写入数据的时候一旦遇到换行字符,ASCⅡ的13,会自行转换成回车--换行(10--13),相对应的在读取文件是就会进行一次方向操作;而二进制方式读写时就是直接将内存存储的内容原样输出到文件中,所以二进制方式读写这么简单直接的方式,何乐而不为?

0 0
原创粉丝点击