none
C輸出中文的問題 RRS feed

  • 常规讨论

  • //為什麼這樣可以輸出中文 char a; for (;fscanf(fp,"%c", &a)!=EOF;fflush(stdout)) printf("%c",a);// a只有8位, '中'有16位, 這裡是先輸出'中'的前8位, 再輸出後8位嗎?

    // 輸出了前8位, 然後fflush(stdout)不是將前8位立即顯示嗎? 那麼前8位應該不是一個字阿... fclose(fp); //這樣輸出 ? 問號 a = '中'; printf("%c",a);





    2012年8月7日 6:32

全部回复

  • char a; for (;fscanf(fp,"%c", &a)!=EOF;fflush(stdout)) printf("%c",a);

    fclose(fp);

    fp 指向的文件, 内容是中文, 中文字有16, a 只有8, 每次调用 fscanf 都只会读取中文字的前8(或后8), printf 将数据送到缓冲区, 然后 fflush(stdout) 将这前8(或后8)立即显示......那么只有前8(或后8)应该不是一个字, 但我试过可以正常显示, 我的理解哪里错了?




    2012年8月8日 0:42
  •  你好,输出字符流的话,应该可以达到目的,但我也想知道为什么。。。

    2012年8月8日 5:26
  • 你好,

    欢迎来到MSDN论坛。

    您已经在这里发了同样的问题,我建议您在同一个帖子里提问。我会把新的并入到旧的里。

    谢谢您的理解。

    此致


    Elegentin Xie [MSFT]
    MSDN Community Support | Feedback to us


    2012年8月9日 5:43
    版主
  • 你改成这样试试:

    char a;

    fscanf(fp,"%c", &a);

    printf("%c",a);

    fflush(stdout));

    fclose(fp);

    2012年8月9日 7:17
  • 你好,

    欢迎来到这里。

    由于您的问题可能没有唯一的答案,所以我建议您吧帖子改为常规讨论。

    感谢您的理解。

    此致


    Elegentin Xie [MSFT]
    MSDN Community Support | Feedback to us

    2012年9月11日 7:38
    版主