wofstream讀寫中文

2021-06-08 08:14:36 字數 975 閱讀 4765

mfc中要把資料輸出用到了wofstream

關於wofstream輸出問題找了好多資料,記下來,留做後用

在預設的c locale下,ofstream能正確輸出中文到檔案中,但不支援中文檔名;wofstream支援中文檔名,但不能向檔案中輸出中文。要解決這個問題,需要在開啟檔案之前將全域性locale設為本地語言。將全域性locale設為本地語言後,ofstream和wofstream的問題都解決了,但cout和wcout卻不能輸出中文了。要讓cout和wcout輸出中文,需要將全域性locale恢復原來的設定

一:

關於開啟檔案

locale &loc = locale::global( locale(locale(),」」,lc_ctype) );

wofstream file;

file.open(「測試.txt」);

locale::global( loc );

關於往檔案中輸出字元

file << l」

第一行」 <<

endl;

二:

其中開啟檔案可以使用wofstream形式

wofstream file;

file.open(「test.txt」);

向檔案中輸入中文字元前要呼叫

file.imbue(  locale( locale(), 」」, lc_ctype)  );

這樣也能正確輸出結果。

但如果使用

file.imbue( locale(「chs」) );

file << l「

第二行」 << endl;

結果:中文是輸出出來了,但其中的資料格式就變了

比如有要輸出的數字為12345.23   最終結果為12,345.23   多加了乙個逗號

注意wofstream 一定要對應寬字串

參考:

ofstream和wofstream與中文輸出問題

使用c 標準庫的iostream,可以方便地將控制台 檔案 字串以及其它可擴充的外部表示作為流來處理,但要處理中文,卻會碰到很多問題。本人原來沒怎麼用過這個iostream,這幾天嘗試用這個寫點東西,一會兒不能輸出中文,一會兒不支援中文檔名的,搞得頭大。網上搜了搜,沒有發現適用於所有情況的解決方案。...

Python中檔案讀寫

2019 06 01 python中的檔案讀寫 操作檔案過程如下 1 開啟檔案 格式 open path,flag encoding errors path 表示要開啟檔案的路徑,flag 表示開啟方式 r 以唯讀的方式開啟檔案,檔案的描述符放在檔案的開頭 rb 以二進位制格式開啟檔案用於唯讀,檔案...

C 中檔案的讀寫

無論讀寫都要包含標頭檔案 讀 從外部檔案中將資料讀到程式中來處理 對於程式來說,是從外部讀入資料,因此定義輸入流,即定義輸入流物件 ifsteam infile,infile就是輸入流物件。這個物件當中存放即將從檔案讀入的資料流。假設有名字為myfile.txt的檔案,存有兩行數字資料,具體方法 i...