`printf`无法输出汉字的主要原因与字符编码设置有关,具体如下:
默认编码不支持中文 C语言标准库函数(如`printf`)默认使用ASCII编码,而汉字属于Unicode编码,直接输出会导致乱码。
源文件编码问题
- 若源文件使用非UTF-8编码(如GBK),编译器可能无法正确解析中文字符。
- 部分编辑器(如VS Code)默认编码可能为UTF-8,需手动切换为支持中文的编码格式。
控制台编码设置
- Windows系统终端需使用`chcp 65001`切换为UTF-8编码。
- 控制台字体需支持中文(如新细明体)。
解决方法
- 修改源文件编码: 使用支持中文的编码(如UTF-8或GBK)重新保存文件。 - 设置编辑器编码
- 调整终端设置:通过命令`chcp 65001`切换终端编码,并确保控制台字体支持中文。
通过以上调整,`printf`应能正确输出汉字。