在做網路通訊的配置軟體時,遇到了乙個問題,取回了檔案的內容,存在字元陣列中,但是儲存時,原來檔案中的換行都不見了,檔案內容被寫在一起。
所處理的物件是ini檔案,使用的是mfc的cfile類,如下:
cfile file;
file.open(_t("zw123.ini"),cfile::modecreate| cfile::modewrite);
file.write(recdata , ret);
file.close();
後來採用mfc的cstdiofile類,ini檔案可以被完整儲存:
cstdiofile file;
file.open(_t("zw123.ini"),cfile::modecreate| cfile::modewrite);
file.write(recdata , ret);
file.close();
原因:cstdiofile預設是用fopen 開啟的c 執行時流式檔案,而cfile預設是二進位制開啟的檔案,文字方式提供對
硬回車—換行符對的特殊處理。當你將乙個換行符(0x0a)寫入乙個文字方式的cstdiofile 物件時,位元組對(0x0d,0x0a)被傳送給該檔案。當你讀乙個檔案時,位元組對(0x0d,0x0a)被翻譯為乙個位元組(0x0a)。
檔案換行符
檔案換行符 dos和windows採用回車 換行 cr lf 而unix linux採用換行符lf,蘋果機 mac os系統 則採用回車符cr.cr用符號 r 表示,十進位制ascii 是13,十六進製制 為0x0d lf使用 n 符號表示,ascii 是10,十六制為0x0a.所以windows平...
檔案IO 換行符問題
ascii表 對於圖1所示檔案 1 加換行符 用uedit對文件進行檢視,如圖2。圖1用記事本開啟xyz.txt 圖2用uedit開啟xyz.txt 值得注意的是,在不同系統中,對換行符的具體定義不一樣。本文討論的是在windows下的情況,即dos格式。至於如unix格式,換行符就是 n 在文字模...
div中間有空格就換行 c 輸入時帶換行符
今天做了vivo的筆試,第三題就是鍊錶合併問題,但是我不會輸入!因為輸入帶了換行符,虧大了。情景再現 先輸入乙個非負數n,表示有n個鍊錶。接下來輸入n行,每行有若干個數字,中間用空格隔開,表示每乙個鍊錶。輸出為按順序合併後的鍊錶。正確的輸入方法 int main while getchar n vv...