关于win32程序\n问题

描述:
在向文件中写数据的时候,在字符串的末尾加了一个\r\n,原本的意思是对应回车换行,可惜将文件用二进制打开一看发现\r\n
对应这0x0d 0x0d 0x0a,为什么会变成三个字节呢,不得其解,难道win32下面\n就是指回车换行?


解决:
如下字符串:
infoFileComment ="[ComtradeEvent]\n;事件通道,0-电压,1-电流\n";
如下写文件:
infoFile.write(infoFileComment.c_str(),infoFileComment.size());
在程序中调试,会发现字符串infoFileComment中\n对应的就是0x0a,为何写到文件中就会变成0x0d 0x0a呢?


原来,文件的打开方式使用文本方式打开的:
0A(\n)在ASCII中为换行符,而windows下的换行符用0D0A(\r\n)表示,而我们的文件在打开时指定的打开
方式fopen("out.dat","w")是以文本方式打开,所以在输出0×0A时自动被windows替换成0×0D 0×0A了,以
二进制模式打开文件fopen("out.dat","wb"),\n就会对应0x0a。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值