Skip to main content
 首页 » 编程设计

c之写入宽字符流

2023年11月22日14artech

我想用 C 写一个宽字符到一个文件。

这是我所做的,但它似乎不起作用...文件仍然是空的。

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

当然我把 setlocale(LC_ALL, "fr_FR.utf8"); 放在了 main 函数中。

请您参考如下方法:

更改 setlocale 参数,在我更改后它对我有用:

setlocale(LC_CTYPE, "fr_FR"); 

编辑:以上我在 Mac OS X 上测试过。它似乎工作正常,输出文件有 3 个字节。

然后,当我在 Linux 机器 (OpenSuse 11) 上尝试相同的操作时,它的工作方式有所不同:结果文件只有一个字节...所以我将其改回 setlocale(LC_ALL, "fr_FR.utf8") ; 它看起来工作正常,输出文件有 3 个字节......所以它似乎有点依赖于系统,函数是 POSIX,但我认为它们的工作方式取决于你安装的语言或其他东西像那样...所有函数都返回错误代码,您应该检查它们。阅读每个功能的手册,看看它们可以返回哪些错误代码。