關於win32程式\n問題

來源:互聯網
上載者:User

描述:
在向檔案中寫資料的時候,在字串的末尾加了一個\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。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.