我的C语言程序运行后为什么是乱码?
#include <stdio.h>
#include <stdlib.h>
int main()
{ char chi[30];
int i;
system("chcp 936>nul");
printf("请输入:");
scanf("%s",chi);
for(i=0;chi[i];i++)
chi[i]+=4;
printf("%s",chi);
return 0;
}
首先谢谢你!!!
#include <stdlib.h>
system("chcp 936>nul");
我加了这两行就解决了。让我懵的是,之前不用写这个也能打印中文,前几天我为了打印特殊字符用了这个方法(链接)网页链接,我试过chinaboy的方法,不过达不到目的,然后我也不知道需不需要改回来,然后用了牵着小蚂蚁散步的方法就行了。请问有关系吗?能不能弄回以前不需要写这两行代码的状态?
有几个小问题:
第一:c语言一般不支持中文,如果你用vc6.0++就是无法打印中文,一定会乱码,建议用英文;
第二:如果你用的c语言编译器支持中文,如devc++,则可以使用中文;
第三:我们的使用的字符格式,最多的是UTF-8,把默认代码页格式改为UTF-8试试吧
你好,这个编译器我没有使用过,根据经验,产生乱码的原因应该是这样:你的程序默认代码格式与你设置的控制台显示格式不一致,就是说,编辑文本时的格式是A,编译成二进制文件后,控制台又以其他格式读取了内容。
建议:
检查一下此软件是否支持C语言中文编辑;
找到产生的对应exe文件直接运行试试。
什么编译器
输出乱码是哪句printf的结果?
scanf那里没必要加&了吧
codeblocks
printf中的中文乱码,字母还好
不加&怎么录入?
你上面有3句printf我问的是哪个输出的乱码
你试试不加来看