windows 10系统,codeblocks中代码运行后,输出结果中有乱码?

Posted

tags:

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

#include <stdio.h>#include <string.h>#include <windows.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"); fprintf(stdout, "This output will go into buff\n"); fflush(stdout); fprintf(stdout, "this will appear when progream\n"); fprintf(stdout, "will come after sleeping 5 seconds\n"); Sleep(5000); return 0;上面代码运行后,输出结果为下图:最后2行结果显示未乱码是什么原因?

参考技术A 如果只有在输出中文时才导致的乱码,这是因为编码问题引起的
很大可能是你的源文件编码为utf-8,编译时默认与源文件编码一致
可以添加编译参数:-finput-charset=utf-8 -fexec-charset=gbk
-finput-charset:用来指定输入文件(你的cpp文件)的字符编码
-fexec-charset:表示以指定编码进行编译追问

不是中文字符的问题

参考技术B

应该是字符集编码问题

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

追问

还是输出不了。

追答

将源码的文本编码改为UTF-8,重新编译运行

参考技术C setvbuf(stdout, buff, _IOFBF, 1024);
使用的buff一个局部变量,在return的时候内存就被释放了。
在程序结束的时候才会flush输出,此时buff的地址里面的内容已经不可知了。

以上是关于windows 10系统,codeblocks中代码运行后,输出结果中有乱码?的主要内容,如果未能解决你的问题,请参考以下文章

怎么在windows系统搭建平台codeblocks+mingGW+wxWidgets

codeblocks改运行框的颜色

CODEBLOCKS10.05 编译运行时 DOS窗口的中文显示为乱码?怎么解决?

使用 CodeBlocks + GCC 构建的可执行文件可以在任何 Windows 上运行吗?

codeblocks运行opengl

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