社区
新手乐园
帖子详情
问个弱智问题,文件以二进制打开和文本方式打开的区别在哪里?
max_xy
2005-10-12 04:29:21
如题
...全文
603
13
打赏
收藏
问个弱智问题,文件以二进制打开和文本方式打开的区别在哪里?
如题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
megaboy
2005-10-13
打赏
举报
回复
ASCII码26这个EOF无论文本还是二进制模式下都会产生的,不管从哪方面说,都不是文本和二进制模式的区别。把ASCII26作为一个文件的结束符这种行为是系统相关的,并不是C标准里面的内容,windows下的C文件处理函数有这个问题,而unix/linux下没有,当然不排除个别unix/linux可能也存在这个问题。
ddmor
2005-10-13
打赏
举报
回复
以上doway(john),megaboy(飞天御剑流之杀神一刀斩),changyanxiao(踏雪无情)都说到了文本访问的特点,不过还是不全面,综合他们的说明如下。
文本方式读文件,会对一些特殊字符进行处理,首先对回车换行的处理,在windows下(不同系统有所区别,unix是不变,mac为'\r'),文本方式会把\n转换为\r\n,读取的时候又把\r\n转换回\n。
其次是对文件结束符0x1a(ctrl+z)的判断处理,文本方式读到该字符的时候就自动结束,而二进制方式不会对以上字符进行处理。
brucelee0224
2005-10-13
打赏
举报
回复
通过文件描述符号访问文件,和文件指针访问文件,方式不一样吧,文件指针是有缓冲的
deping_chen
2005-10-13
打赏
举报
回复
我个人认为:
以文本方式和二进制方式打开文件的主要区别是:
int i;
file >> i;和
file << i;
的工作方式是不一样的。对于其他非字符串类型也有同样的问题。
tyg1982
2005-10-13
打赏
举报
回复
学习
antijpn
2005-10-12
打赏
举报
回复
转新手乐园
另外,楼上胡说……
hundlom
2005-10-12
打赏
举报
回复
基本是对null字节处理的不同。文本遇见null就停止,而二进制则可以处理
jsjjms
2005-10-12
打赏
举报
回复
汇编和c语言有什么区别?
yzisyz
2005-10-12
打赏
举报
回复
我认为本质上并没有区别,关键是读写文件时的处理方式不同,本质上读写文件时都是2进制的。
changyanxiao
2005-10-12
打赏
举报
回复
文件是在计算机内存中以二进制表示的数据在外部存储介质上的另一种存放形式。
文件通常分为二进制文件和文本文件。
二进制文件是包含在 ASCII 及扩展 ASCII 字符中编写的数据或程序指令的文件。一般是可执行程序、图形、图象、声音等等文件。
文本文件(也称为ASCII文件):它的每一个字节存放的是可表示为一个字符的ASCII代码的文件。它是以 “行”为基本结构的一种信息组织和存储方式的文件,可用任何文字处理程序阅读的简单文本文件。
当我们按照文本方式往文件中写入数据时,一旦遇到换行字符(ASCII为10),则会转换为回车-换行(ASCII为13、10)。在读取文件时,一旦遇到回车-换行的组合(即连续的ASCII 13、10),则会转换为换行字符(ASCII为10)。
当我们按照二进制方式往文件中写入数据,则将数据在内存中的存储形式原样输出到文件中。
megaboy
2005-10-12
打赏
举报
回复
其实只有一个区别,就是对\n的处理,在windows下,文本方式会把\n转换为\r\n,读取的时候又把\r\n转换回\n。
doway
2005-10-12
打赏
举报
回复
判断文件结束的方式也不同。
寻开心
2005-10-12
打赏
举报
回复
二进制打开后用二进制的读写文件函数
文本方式打开要用文本方式的读写函数
否则都会出问题的,尤其是在遇到回车换行的时候
文本方式打开和文本方式读写的时候,遇到回车换行这样的标记可能会做特殊处理的,转换成为一个字符。
而二进制方式不同,一个字符就是一个字符不会特殊处理
最好的选择就是文本文件用文本方式打开和读写,二进制文件用二进制方式打开和读写
c语言写
二进制
文件
换行符,小小换行符乱谈(
文本
文件
vs
二进制
文件
)
使用 C 语言的 fopen
打开
文件
时,可以指定的 mode 有 12 个,其中 6 个包含"b"使用 C++ 的 fstream
打开
文件
时,可用的模式组合有 24 个(?),其中 12 个包含"binary"使用 python 的 open
打开
文件
,除了可以使用 C ...
小小换行符乱谈(
文本
文件
vs
二进制
文件
)
使用 C 语言的 fopen
打开
文件
时,可以指定的 mode 有 12 个,其中 6 个包含"b" 使用 C++ 的 fstream
打开
文件
时,可用的模式组合有 24 个(?),其中 12 个包含"binary" 使用 python 的 open ...
qt写
文本
文件
换行符_小小换行符乱谈(
文本
文件
vs
二进制
文件
)
使用 C 语言的 fopen
打开
文件
时,可以指定的 mode 有 12 个,其中 6 个包含"b"使用 C++ 的 fstream
打开
文件
时,可用的模式组合有 24 个(?),其中 12 个包含"binary"使用 python 的 open
打开
文件
,除了可以使用 C ...
小小换行符乱谈(
文本
文件
vs
二进制
文件
) .
使用 C 语言的 fopen
打开
文件
时,可以指定的 mode 有 12 个,其中 6 个包含 "b" 使用 C++ 的 fstream
打开
文件
时,可用的模式组合有 24 个(?),其中 12 个包含 "binary" 使用 python 的 open
换行符乱谈(
文本
文件
vs
二进制
文件
)
搜一些资料的时候偶然看到了这篇博文(http://blog.csdn.net/dbzhang800/article/details/6430280),觉得讲的挺好的,故...使用 C 语言的 fopen
打开
文件
时,可以指定的 mode 有 12 个,其中 6 个包含 "b" 使用
新手乐园
33,311
社区成员
41,784
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章