LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1766|回复: 2

一个面向wchar_t的程序,文件的输出却不正确

[复制链接]
发表于 2007-6-24 21:50:08 | 显示全部楼层 |阅读模式
  1. /********
  2. filename: wchar_test1.c
  3. ********/
  4. #include <stdio.h>
  5. #include <wchar.h>
  6. #include <locale.h>
  7. #include <stdlib.h>
  8. #define TMP_FILE "/tmp/chinese.txt"
  9. int main()
  10. {
  11.         setlocale(LC_ALL, "");
  12.         wchar_t * wcs_test = L"/*我爱北京天安门*/";
  13.         FILE *fp = NULL;
  14.         fp = fopen(TMP_FILE, "w+");
  15.         if( NULL == fp){
  16.                 exit(-1);
  17.         }
  18.         if(fwide(fp, 1)<=0){
  19.                 exit(-2);
  20.         }
  21.         fwprintf(fp, "%s\n", wcs_test);
  22.         fclose(fp);
  23.         exit(0);
  24. }
复制代码
请将您的locale设置为zh_CN.UTF8,然后在用gcc编译后执行。
请用gcc4.0以上执行。
我得到的结果,chinese.txt的内容是f2a78ca5 (用16进制表示)
发表于 2007-6-25 03:28:07 | 显示全部楼层
fwprintf(fp, L"%ls\n", wcs_test);
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-25 10:53:22 | 显示全部楼层
已经可以了,多谢zhllg兄指教!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表