最近在搗鼓從郵箱拉取數據並下載郵件附件的內容到本地的活兒,記錄一下遇到的問題。
獲取到附件數據後,最開始將數據寫入本地文件夾的代碼如下:
運行完成後查看寫好的excel文件,顯示文件已損壞
通過beyond compare打開此文件和源文件比較:
原來新寫的文件比源文件多了很多‘0D’,原來ostream寫文件如果沒有標記ios::binary方式寫入,碰到換行符(0x0A),編譯器會自動轉換爲回車換行符(0x0D 0x0A)然後再寫入文件,改成以二進制的方式寫入後就OK了。
最近在搗鼓從郵箱拉取數據並下載郵件附件的內容到本地的活兒,記錄一下遇到的問題。
獲取到附件數據後,最開始將數據寫入本地文件夾的代碼如下:
運行完成後查看寫好的excel文件,顯示文件已損壞
通過beyond compare打開此文件和源文件比較:
原來新寫的文件比源文件多了很多‘0D’,原來ostream寫文件如果沒有標記ios::binary方式寫入,碰到換行符(0x0A),編譯器會自動轉換爲回車換行符(0x0D 0x0A)然後再寫入文件,改成以二進制的方式寫入後就OK了。