codeblocks输出结果中有乱码,是啥原因?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codeblocks输出结果中有乱码,是啥原因?相关的知识,希望对你有一定的参考价值。

Windows 10中,codeblocks编写的代码如下:#include <stdio.h>#include <string.h>int main(void)char buff[1024];memset(buff, '\0', sizeof(buff));setvbuf(stdout, buff, _IOFBF, 1024);fprintf(stdout, "This is bbs.fishc.com\n");fflush(stdout);fprintf(stdout, "输入任意字符后才会显示该行字符!\n");getchar();return 0;运行后结果如下图:输入任意一个字符x,回车后显示乱码,没有正确显示代码中的中文字符,请问是什么原因?ps:我的codeblocks是可以正常显示中文字符的,只有上面这个程序不能正常显示,很奇怪!

这是由于编码问题导致的,windows cmd命令行默认的编码方式是936gbk导致的。

可以输出前加system("chcp 65001")来输出中文

然后输出之后再修改编码,调回来system("chcp 936")。追问

加了这个命令,codeblocks报错,无法运行程序。麻烦您测试一下

参考技术A

应该是字符集编码问题

可将fprintf改为fwprintf,用宽字符集输出

以上是关于codeblocks输出结果中有乱码,是啥原因?的主要内容,如果未能解决你的问题,请参考以下文章

CodeBlocks输出不了中文

codeblocks中文乱码原因及解决办法

c语言问题,输出结果是乱码

c语言程序输出的数据后面多了一些乱码

C语言文件输出时,输入数据后为啥会出现乱码

C语言中出现乱码