文件分为2种,2进制文件和文本文件, 请各位简单介绍一下,及如何区分?

jeffreyren 2001-07-28 09:55:04
...全文
119 11 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
coolstar 2001-07-30
同意wmouse(山水) ShyWJB(家宝) 观点
  • 打赏
  • 举报
回复
jeffreyren 2001-07-30
请问:

CFile 和 CStdioFile 处理的文件有什么不同?
  • 打赏
  • 举报
回复
hp1200 2001-07-30
up
  • 打赏
  • 举报
回复
sad_pacific 2001-07-30
Re: jeffreyren
CFile通常用于对Binary文件操作.
CStdioFile是从CFile类上派生的, 因此该类有CFile类的所有特性, 但MFC中之所以要有此类, 主要是为方便文本文件的操作, 如它的功能函数WriteString(), ReadString()

因此, 你可以用CFile类操作一般的Binary文件, 而用CStdioFile去操作文本文件的读取..
  • 打赏
  • 举报
回复
ShyWJB 2001-07-28
同意wmouse(山水)观点
说白了,就是文本文件在读出与写入过程中有个转换特定字符(对)的问题
二进制文件就是数据在内存中的完全位映象
  • 打赏
  • 举报
回复
wmouse 2001-07-28
我从“流”的角度谈一下:
从C开始引入了“流”(stream)的概念,将数据的输入输出看作是数据的流入流出,分为文本流和二进制流。
文本流中的数据以字符形式出现,即ASCII码,由于文本有行的限制,因而流完一行后要有结束符,C规定是“\n”,在文本流中流入一行,存储后“\n”被转换成CR(回车)LF(换行)的代码0dH和0aH,等流出的时候再换成“\n”。
而二进制流若流中有字符,用一个字节的二进制ASCII码表示,若是数字,则用一个字节的二进制数表示。在流入流出时对“\n”不进行转换。
看一下两种流对数字的存储。“2001”这个数在文本流中以ASCII码表示,为50 48 48 49;而在二进制流中是11111010001,当然是二进制流占的空间少。
  • 打赏
  • 举报
回复
wjyasd 2001-07-28
二进制文件中的内容 含概了 00--FF 的所有的字符
而文本文件只是一些可以显示的字符和少量的控制字符(0x0d 0x0a )
  • 打赏
  • 举报
回复
iProgram 2001-07-28
>用文本方式打开的文件读不到控制字符
不同意,13,10什么的难道不是控制字符?
  • 打赏
  • 举报
回复
2ndboy 2001-07-28
用文本方式打开的文件读不到控制字符
  • 打赏
  • 举报
回复
TNicholas 2001-07-28
你认为有区别吗?
  • 打赏
  • 举报
回复
冰壶2013 2001-07-28
其实都一样,都是存的ASCII码。
只不过文本文件里存的是可显示字符的ASCII码!
  • 打赏
  • 举报
回复
相关推荐
发帖
VC/MFC

1.6w+

社区成员

VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
帖子事件
创建了帖子
2001-07-28 09:55
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……