簡體   English   中英

將寬字符寫入流

[英]Write wide-character to stream

我想在C文件中寫一個寬字符。

這是我的工作,但似乎不起作用...文件仍然為空。

wchar_t c = 0x2592;
FILE *file;
file = fopen("foo.txt","w");
fputwc(c, file);

當然我放了setlocale(LC_ALL, "fr_FR.utf8"); 在主要功能上。

更改setlocale參數,更改后它對我有用:

setlocale(LC_CTYPE, "fr_FR");

編輯:上面我在Mac OS X上測試。似乎正常,輸出文件有3個字節。

然后,當我在Linux機器(OpenSuse 11)上嘗試相同的操作時,結果卻有所不同:結果文件只有一個字節...所以我將其改回setlocale(LC_ALL, "fr_FR.utf8"); 看起來正常,輸出文件有3個字節...所以似乎有點系統依賴性,功能是POSIX,但是我認為它們的工作方式取決於您安裝的語言或類似的語言...所有函數都返回錯誤代碼,您應該檢查它們。 閱讀每個功能的手冊,看看它們可以返回什么錯誤代碼。

您需要刷新輸出以實際寫入字符:

fflush(file);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM