很多刚接触c/c++的新手,都会在用dev-c++编译运行代码时碰到中文乱码问题:写代码的时候中文显示正常,运行后控制台输出全是看不懂的方块或乱码字符,折腾半天也找不到问题根源。其实dev-c++乱码基本都是编码不匹配导致的小问题,按照步骤调整就能轻松解决。
理清dev-c++乱码的核心原因
乱码的本质是编码和解码规则不统一:我们常用的windows系统控制台,默认采用gbk(也就是系统默认ansi编码)解码输出内容,而新版dev-c++默认将源文件保存为utf-8编码,两种编码对中文字符的存储规则不同,解码规则不对自然就会出现乱码。少数情况下是手动改编码后反过来不匹配,本质问题都是规则不统一。
方案一:修改全局编码,一劳永逸解决问题
如果只是日常练习写代码,最推荐直接修改dev-c++的默认编码,从根源解决问题。打开dev-c++后,点击顶部菜单栏的「工具」-「编译器选项」,在弹出的窗口中找到「编码」选项卡,将“源文件默认编码”修改为「使用系统默认字符集(ansi-gbk)」,部分旧版本dev-c++会直接显示为gbk选项,选中后点击确定,重启dev-c++即可生效。修改完成后新建的代码都会默认用gbk保存,和系统控制台编码匹配,基本不会再出现乱码。
方案二:添加临时代码,无需修改全局设置
如果因为项目需要必须保留utf-8编码,可以不用改全局设置,只需要做小调整就能解决。只需要在main函数的最开头添加一行代码即可:`system("chcp 65001 > nul");`,注意需要提前引入标准库头文件`include

改完仍乱码?检查两个关键细节
如果调整后还是出现乱码,先检查两个容易忽略的细节:一是旧代码需要重新保存,修改默认编码后,原来的utf-8编码文件不会自动转换,需要把代码复制出来新建文件再粘贴保存;二是不要把项目放在中文路径下,dev-c++对中文路径的兼容性较差,不仅会引发乱码,还可能直接导致编译失败。调整后基本就能解决99%的dev-c++乱码问题。





























