-
文本方式打开文件与二进制方式打开文件的区别
2020-06-13 16:23:49在Windows平台中,如果以文本方式打开文件,当读取文件时,系统会将‘\r\n’转换成一个字符‘\n’.在写入文件时,系统会将‘\n’转换成‘\r\n’写入。 如果用文本方式打开二进制文件进行读写,读写内容就可能和文件...在Linux平台中,用文本方式或二进制方式打开文件没有任何区别。
在Linux平台中,文本文件以‘\n’作为换行符号;在Windows平台中,文本文件以连在一起的‘\r\n’作为换行符号。在Windows平台中,如果以文本方式打开文件,当读取文件时,系统会将‘\r\n’转换成一个字符‘\n’.在写入文件时,系统会将‘\n’转换成‘\r\n’写入。
如果用文本方式打开二进制文件进行读写,读写内容就可能和文件内容有出入。因此用二进制形式打开文件总是最保险的。 -
文本文件和二进制文件;以文本方式打开和以二进制方式打开
2013-03-27 18:02:17综述:不管是文本文件,还是二进制文件,在其中存储的都是二进制1和0组成的数据。...除非用文本方式打开时,fwrite时会将换行(ASCII码10)转换为回车(13)换行(10)。fread时会将回车换行两个字符综述:不管是文本文件,还是二进制文件,在其中存储的都是二进制1和0组成的数据。
文本(text)文件:也成ASCII文件。如.txt文件。
二进制文件。
不管是文本文件还是二进制文件,当使用fwrite和fread时,都是直接将buffer中的内容原样复制到文件中。除非用文本方式打开时,fwrite时会将换行(ASCII码10)转换为回车(13)换行(10)。fread时会将回车换行两个字符转换为换行字符。无论是文本文件还是二进制文件,都会这样转换。
-
fopen按文本方式打开文件和按二进制方式打开文件的区别
2012-12-19 22:21:15今天在写文件的时候发现fwrite的时候多出了一些乱码,最后发现加个b,以二进制的方式打开文件就解决了,google了.... 特记与此 在学习C语言文件操作后,我们都会知道打开文件的函数是fopen,也知道它的第二个参数...今天在写文件的时候发现fwrite的时候多出了一些乱码,最后发现加个b,以二进制的方式打开文件就解决了,google了.... 特记与此
在学习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程序能不加修改的读写DOS的文本文件,所以就在文件读写上做了修改。随着DOS/Windows成为主流平台,这个当初为了兼容而做的修改給众多的C语言开发者添了这样一个小小的麻烦。
-
文件的文本打开方式和二进制打开方式的区别
2019-10-07 15:02:26文件的文本打开方式和二进制打开方式的区别 在 UNIX/Linux平台中,用文本方式或二进制方式打开文件没有任何区别。 在 UNIX/Linux 平台中,...在 Windows 平台中,如果以文本方式打开文件,当读取文件时,系统会将文...文件的文本打开方式和二进制打开方式的区别
在 UNIX/Linux平台中,用文本方式或二进制方式打开文件没有任何区别。
在 UNIX/Linux 平台中,文本文件以\n
(ASCII码为 0x0a)作为换行符号;而在 Windows 平台中,文本文件以连在一起的\r\n
(\r
的 ASCII 码是 0x0d)作为换行符号。
在 Windows 平台中,如果以文本方式打开文件,当读取文件时,系统会将文件中所有的\r\n
转换成一个字符\n
,如果文件中有连续的两个字节是 0x0d0a,则系统会丢弃前面的 0x0d 这个字节,只读入 0x0a。当写入文件时,系统会将\n
转换成\r\n
写入。
也就是说,如果要写入的内容中有字节为 0x0a,则在写人该字节前,系统会自动先写入一个 0x0d。因此,如果用文本方式打开二进制文件进行读写,读写的内容就可能和文件的内容有出入。因此,用二进制方式打开文件总是最保险的。
结论:
在Unix/Linux平台下:
读写进文件的内容,和文件存取的内容是一致的,使用文本方式或者二进制方式,都是一样;
在Windows平台下:
读写进文件的内容,和文件存取的内容是不一致的:文件内容\r\n读成\n,写\n文件内容\r\n(使用文本方式打开);
读写进文件的内容,和文件存取的内容是一致的(使用二进制方式打开);
注:原文链接:http://c.biancheng.net/view/311.html,感谢!
-
python以只读方式打开文本文件的参数_python:文件操作
2020-12-24 08:23:42则创建改文件并以只写方式打开"x"创建一个新文件,并以写模式打开这个文件,如果文件存在,则会产生“FileExistsError”错误"a"以只写模式打开一个文件,如果要打开的文件存在,则要写入的内容追加到文件末尾"b"用二... -
VisualStudio如何以源码文本方式打开rc文件
2015-09-23 13:56:00视图 >> 解决方案资源管理器 >> 右击XXX.rc >> 打开方式 >> 源代码(文本)编辑器 -
C语言采用文本方式和二进制方式打开文件的区别分析
2021-01-20 06:15:04对于编程人员来说,文本文件和二进制文件就是一个声明,指明了你应该以什么方式(文本方式/二进制)打开这个文件,用什么函数读写这个文件(读写函数),怎么判断读到这个文件结尾等。 具体分析如下: 一、以哪种方式... -
C/C++中二进制与文本方式打开文件的区别
2017-12-04 16:34:00如果以“文本”方式打开文件,当读取文件的时候,系统会将所有的"/r/n"转换成"/n";当写入文件的时候,系统会将"/n"转换成"/r/n"写入。如果以"二进制"方式打开文件,则读/写都不会进行这样的转换。 在Unix/Linux... -
C语言文本方式和二进制方式打开文件区别
2019-07-11 09:13:16我觉得,对于编程人员,文本文件和二进制文件就是一个声明,指明了你应该以什么方式(文本方式/二进制)打开这个文件,用什么函数读写这个文件(读写函数),怎么判断读到这个文件结尾。 具体的说: 1... -
python中所有文件都能以文本方式打开吗-详解Python中open()函数指定文件打开方式的用法...
2020-11-16 17:10:57文件打开方式当我们用open()函数去打开文件的时候,有好几种打开的模式。"r"->只读"w"->只写,文件已存在则清空,不存在则创建。"a"->追加,写到文件末尾"b"->二进制模式,... -
C语言以文本方式读写文件
2013-06-18 20:03:14文件使用方式 意义 “rt” 只读打开一个文本文件,只允许读数据 “wt” 只写打开或建立一个文本文件,只允许写数据 “at” 追加打开一个文本文件,并在文件末尾写数据 “rb” 只读打开一... -
C语言文本方式和二进制方式打开文件区别
2014-05-18 01:30:53我觉得,对于编程人员,文本文件和二进制文件就是一个声明,指明了你应该以什么方式(文本方式/二进制)打开这个文件,用什么函数读写这个文件(读写函数),怎么判断读到这个文件结尾。 具体的说: 1。以哪种... -
c 打开文件方式(二进制和文本)
2013-09-05 15:16:40c语言文件操作的一个问题: c语言中打开文件有两种方式,一种是二进制方式,另一种是文本方式(ASCII...以文本方式打开文件,若将数据写入文件,如果遇到换行符'\n'(ASII 值为10,0A),则会转换为回车—换行'\r\n' -
c++ 以二进制和以文本方式读写文件的区别
2017-03-19 20:19:00在c++项目开发中,时常涉及到文件读写操作。...在文件读写时,调用fopen,无论以文本模式还是二进制模式打开文件,之后在进行文件读取和写入,其结果都是一样的。因此,在linux平台下,以二进制方... -
python以只读方式打开文本文件的参数_笨办法学Python 习题 16 读写文件
2021-01-29 08:06:11如果你做了上一个练习的加分习题,你应该已经了解了各种文件相关的命令(方法 / 函数)...readline – 读取文本文件中的一行。truncate – 清空文件,请小心使用该命令。write(stuff) – 将 stuff 写入文件。这是你现... -
Tomcat服务器:解决rar等文件无法下载,或者以文本方式打开
2012-04-09 17:50:17打开%TOMCAT_HOME%/conf/web.xml 在里面里面增加rar文件的mime映射。然后重启Tomcat,清空IE临时文件即可。 zip application/zip 也可以将其他的类型添加到mime映射中,如: doc application/ms... -
文本与二进制方式打开文件的区别
2015-10-09 20:23:22如果以“文本”方式打开文件,当读取文件的时候,系统会将所有的"/r/n"转换成"/n";当写入文件的时候,系统会将"/n"转换成"/r/n"写入。 如果以"二进制"方式打开文件,则读/写都不会进行这样的转换。 在Unix/... -
VS2008, MFC 文件的操作1 - C语言方式 文本方式打开 / 二进制方式打开 读写 C
2020-06-25 23:08:442. 以文本新式打开 读写文件代码 void Cvs2008_SX_jiaocheng12View::OnFileWritefile() { // TODO: 在此添加命令处理程序代码 //C语言方式 FILE *pFile = fopen("1.txt","w");//Opens an empty file for ...
-
薪酬数据分析.mp3
-
Docker 安装
-
*Php消息队列实现
-
MT7681_IoT_Package_v1.30
-
37-大转盘设置图片.zip
-
【ssm项目源码】校园活动信息平台.zip
-
数据分析技能提升十大建议0518.ppt
-
【硬核】一线Python程序员实战经验分享(1)
-
深入浅出matplotlib(88):事件对象不同颜色的演示
-
app软件测试全栈系列精品课程
-
IT6300-UM-EN.pdf
-
Lua中的generic for
-
Matlab绘图基础
-
关于mbzuai的offer的三点思考
-
软件综合实习.zip
-
D. Round Subset(整除+dp)
-
C++代码规范和Doxygen根据注释自动生成手册
-
华为1+X——网络系统建设与运维(中级)
-
毕业设计管理系统.rar
-
ROBOGUIDE软件:机器人仿真视频导出功能介绍与使用方法