c语言文本与二进制
文本与二进制写入有什么区别?今天我分别用w+和wb+写入字符串”abcd”,但发现效果是一样的!那么w+和wb+,即是文本与二进制的写入方式有什么区别...
文本与二进制写入有什么区别?
今天我分别用w+和wb+写入字符串”abcd”,但发现效果是一样的!那么w+和wb+,即是文本与二进制的写入方式有什么区别 展开
今天我分别用w+和wb+写入字符串”abcd”,但发现效果是一样的!那么w+和wb+,即是文本与二进制的写入方式有什么区别 展开
3个回答
展开全部
对于字符串,文本与二进制的写入方式区别不大,widlows系统中文本写入时将"\n"转换为"\r\n",二进制写入时不转换。linux系统中,文本与二进制的写入都不转换"\n"。
对于其他类型,区别比较大。文本写入方式,其基于的是字符,所以其存储的字节一般是定长的,ASCII编码时,每个字符是8位,UNICODE编码时是16位。
而二进制写入方式,是变长存储。
比如存储一个int型数字123,文本写入方式就是存取三个字符,'1', '2', '3', 共占3个字节(ASCII编码)
二进制写入方式,会将123,存储空间为4个字节,16进制表示为:00 00 00 00 00 00 00 7B
对于其他类型,区别比较大。文本写入方式,其基于的是字符,所以其存储的字节一般是定长的,ASCII编码时,每个字符是8位,UNICODE编码时是16位。
而二进制写入方式,是变长存储。
比如存储一个int型数字123,文本写入方式就是存取三个字符,'1', '2', '3', 共占3个字节(ASCII编码)
二进制写入方式,会将123,存储空间为4个字节,16进制表示为:00 00 00 00 00 00 00 7B
展开全部
如果用来输出char类型的数据确实没区别
但是如果输出int或者double类型的话,文本方式将会把int或者double的数据用人能识别的文本方式存进文件
如果是binary方式的话,就是把int或者double的内存用本来在内存中的二进制表达方式存进电脑,即int占4个字符,double占8个
但是如果输出int或者double类型的话,文本方式将会把int或者double的数据用人能识别的文本方式存进文件
如果是binary方式的话,就是把int或者double的内存用本来在内存中的二进制表达方式存进电脑,即int占4个字符,double占8个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-06-25
展开全部
应该没有什么区别吧.感觉上两个应该是一样的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询