电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

文本文件与二进制文件区别VIP免费

文本文件与二进制文件区别_第1页
1/9
文本文件与二进制文件区别_第2页
2/9
文本文件与二进制文件区别_第3页
3/9
文本文件与二进制文件区别 在学习C 语言文件操作后,我们都会知道打开文件的函数是fopen,也知道它的第二个参数是标志字符串。其中,如果字符串中出现'b',则表明是以打开二进制(binary)文件,否则是打开文本文件。 那么甚么是文本文件,甚么是二进制文件呢? 可能大多数人都没有仔细考虑过。 在Windows 和 DOS 系统中,狭义的文本文件是指扩展名为 txt 的文件。实际上,那些没有规定格式的,由可理解的的ASCII以及其它编码文字组成的文件都是文本文件,如 C 源程序文件,HTML 超文本,XML。除此之外的其它文件都是二进制文件,如Word 文件DOC,图像格式文件JPG。 但是,所谓使用 fopen 标志打开文本文件与二进制文件的说法并不准确。正确的说法应该是--以文本方式和二进制方式打开文件。因为我们用两种方式都可以任意的文件。 即使这样,为甚么还要区分这两种方式呢? 这是因为这两种方式在读写文件时的操作是不一样的。 二进制方式很简单,读文件时,会原封不动的读出文件的全部内容,写的时候,也是把内存缓冲区的内容原封不动的写到文件中。 而文本方式就不一样了,在读文件时,会将换行符号CRLF(0x0D 0x0A)全部转换成单个的0x0A,并且当遇到结束符CTRLZ(0x1A)时,就认为文件已经结束。相应的,写文件时,会将所有的0x0A 换成0x0D0x0A。 所以,若使用文本方式打开二进制文件时,就很容易出现文件读不完整,或内容不对的错误。即使是用文本方式打开文本文件,也要谨慎使用,比如复制文件,就不应该使用文本方式。 要特别注意的是,上面这样的说法仅适用于 DOS 和Windows 系统。在 Unix和其它一些系统中,没有文本方式和二进制方式的区分,使不使用'b'标志都是一样的。这是由于不同操作系统对文本文件换行符的定义,和 C 语言中换行符的定义有所不同而造成的。 如上文已提到,DOS 和 Windows 系统使用 CRLF(0x0D 0x0A)双字节作为文本文件换行符,而 Unix文本文件的换行符只有一个字节 LF(0x0A)为。在 C 语言中,也是以 LF 即'\n'为换行符。 由于 DOS/Windows 定义的换行符和 C 语言的不一致,C语言的标准输入输出函数进行读写文本文件时,就进行了CRLF->LF 的转换。而 Unix的定义和 C 语言的是一样的,就不必转换了。 那么,为甚么会有定义不一致的情况呢,这纯属历史原因。当初 C 是在 Unix上发展的,对换行的定义自然就一样了。其后 C被引入到DOS 系统,为了使原有的C 程序能不加...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

文本文件与二进制文件区别

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部