最近在捣鼓从邮箱拉取数据并下载邮件附件的内容到本地的活儿,记录一下遇到的问题。
获取到附件数据后,最开始将数据写入本地文件夹的代码如下:
运行完成后查看写好的excel文件,显示文件已损坏
通过beyond compare打开此文件和源文件比较:
原来新写的文件比源文件多了很多‘0D’,原来ostream写文件如果没有标记ios::binary方式写入,碰到换行符(0x0A),编译器会自动转换为回车换行符(0x0D 0x0A)然后再写入文件,改成以二进制的方式写入后就OK了。