陌上心-0 2016-03-13 08:18 采纳率: 33.3%
浏览 8587
已采纳

C编程输出中文为什么显示乱码

从词典文件中读取数据,输出的时候为什么显示乱码?
代码如下:
#include
2 #include
3
4 int main()
5 {
6 FILE *fp = fopen("text.txt","r");
7 char english[32],chinese[64],attribute[8];
8 int i=0,j=0,k=0;
9 int flag_null = 0, flag_p = 0;
10 while(!feof(fp))
11 {
12 char ch = fgetc(fp);
13 if(ch == ' ')
14 {
15 flag_null = 1;
16 }
17
18 if(ch == '.')
19 {
20 flag_p = 1;
21 }

22 if(flag_null!=1)
23 {
24 english[i] = ch;
25 i++;
26 }

27 else if(isalpha(ch)||ch=='.')

                               {

29 attribute[k] = ch;
30 k++;
31 }
32 else if(ch < 0)
33 {
34 chinese[j] = ch;
35 j++;
36 }
37
38 if(ch == '\n')
39 {
40 printf("%s %s %s\n",english,chinese,attribute);
41 }
42
43 }
44
45 fclose(fp);
46 }

text.txt文件内容
across   prep.横越 adv.横穿

输出:
across .??越横穿? prep.adv.??越横穿?

  • 写回答

2条回答 默认 最新

  • renlong0829 2016-03-13 17:02
    关注

    汉字编码格式跟英文字符编码格式是不一样的。标准C语言库函数不能直接处理汉字。
    %c,%s只能处理ASCII在[32,127]区间的字符输出。汉字编码超过这个范围了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题