以文本方式和二进制方式处理文件(不知道这句本身有没有问题)的时候,除了在处理回车换行符上的区别外,还有没有其他方面的不同?谢谢

解决方案 »

  1.   

    文件是指在内存中以二进制存储的数据在外部存储介质上的另一种存储形式,可以分为二进制文件和文本文件。 二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。一般是可执行程序,图形,图像,声音
            文件。 文本文件(也叫ASCII文件),它的每一个字节存放的都是一个ASCII代码。可以使用任何的文字处理程序打开。 文件一般有两种读写方式,文本方式和二进制方式。当我们按照文本方式往文件中写入数据时,一旦遇到换行字符(ASCII
    为10),则会转换为回车-换行(ASCII为13、10)。在读取文件时,一旦遇到回车-换行的组合(即连续的ASCII 13、10),
    则会转换为换行字符(ASCII为10)。当我们按照二进制方式往文件中写入数据,则将数据在内存中的存储形式原样输出到
    文件中。 其中的任何一种方式都能够去访问上面介绍的文件形式。只是,如果使用文本方式访问二进制文件或用二进制方式访问
            文本文件是,都不能过获得正确的显示。 例如,有一个整数10000,在内存中占了4个字节(在VC中整数都是4字节),其存储形式为0x00,00,20,10(将其转化为10
            进制就是10000),二进制文件即按此存储。而文本方式存储为:
                                                0x31,30,30,30,30,30
                                                   1  0  0  0  0  0 
            即将整数的每一个数字为转化为对应的数字字符。字符1在ASCII表中是0x31.一般来说,我们是不能正确阅读二进制文件
    的,因为我们通常是用的文本方式(例如记事本)打开,是不能正确的显示的。例如上面的用二进制方式存储的10000,如
    果用文本方式打开,通过查找ASCII码,0x00表示空(NULL),0x20表示空格(SP),0x10表示(SLE)对应的图形。 因此,如果把一个数字保存到文件中去,希望用记事本打开,能够正确地显示(记住:用记事本显示的是数字字符),则每一
    位都要用对应的ASCII来保存。