LinuxSir.cn,穿越时空的Linuxsir!

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

大家执行这个程序是什么结果?

[复制链接]
发表于 2004-10-25 16:23:36 | 显示全部楼层 |阅读模式
  1. #include <stdio.h>
  2. #include <wchar.h>
  3. /* 一个 C 程序 */
  4. int main(void)
  5. {
  6.         wint_t c;
  7.         FILE *fp;
  8.         fp = fopen("x.c", "r");
  9.         while ((c = fgetwc(fp)) != WEOF)
  10.                 fputwc(c, stdout);
  11.         fclose(fp);
  12.         return 0;
  13. }
复制代码
我在我的机器上执行这个程序,结果是
  1. #include <stdio.h>
  2. #include <wchar.h>
  3. /*
复制代码
请问这是为什么?x.c 就是上面的源程序,输出只到“一个 C 程序”的“一”字之前。
发表于 2004-10-25 16:49:02 | 显示全部楼层
在windows下没问题,是不是在linux下编译时要指定encoding
发表于 2004-10-26 17:01:48 | 显示全部楼层
编译出错??
这个看不懂~~
发表于 2004-10-26 17:11:51 | 显示全部楼层

  1. #include <stdio.h>
  2. #include <wchar.h>
  3. #include <locale.h>

  4. /* 一个 C 程序 */

  5. int main(void)
  6. {
  7.         wint_t c;
  8.         FILE *fp;
  9.         setlocale(LC_ALL, "zh_CN.GB18030");
  10.         fp = fopen("test.c", "r");
  11.         while ((c = fgetwc(fp)) != WEOF)
  12.                 fputwc(c, stdout);
  13.         fclose(fp);
  14.         return 0;
  15. }
复制代码

我改成这样就好了。
 楼主| 发表于 2004-10-27 16:24:13 | 显示全部楼层
多谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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