我的C语言程序运行后为什么是乱码?

使用或不适用旧控制台,或者用美国还是中文简体都不行,其中不使用旧控制台运行时什么都不显示。怎么办?... 使用或不适用旧控制台,或者用美国还是中文简体都不行,其中不使用旧控制台运行时什么都不显示。怎么办? 展开
 我来答
简乱千因1S
2019-09-05 · TA获得超过2270个赞
知道大有可为答主
回答量:1003
采纳率:100%
帮助的人:212万
展开全部

有几个小问题:

  • 第一:c语言一般不支持中文,如果你用vc6.0++就是无法打印中文,一定会乱码,建议用英文;

  • 第二:如果你用的c语言编译器支持中文,如devc++,则可以使用中文;

  • 第三:我们的使用的字符格式,最多的是UTF-8,把默认代码页格式改为UTF-8试试吧

希望我的分享对你有用,感谢采纳

夏天的小红花

2019-09-05 · TA获得超过4810个赞
知道大有可为答主
回答量:1万
采纳率:83%
帮助的人:700万
展开全部
把代码这样修改后试试?主要是在你的编译器环境下运行的程序中能不能输入汉字?如果能够输入汉字的话,下面的程序应该能够起到效果的(程序在DEV-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的方法,不过达不到目的,然后我也不知道需不需要改回来,然后用了牵着小蚂蚁散步的方法就行了。请问有关系吗?能不能弄回以前不需要写这两行代码的状态?

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
刘淘冬
2019-09-04 · TA获得超过623个赞
知道小有建树答主
回答量:193
采纳率:72%
帮助的人:82.5万
展开全部

有几个小问题:

  • 第一:c语言一般不支持中文,如果你用vc6.0++就是无法打印中文,一定会乱码,建议用英文;

  • 第二:如果你用的c语言编译器支持中文,如devc++,则可以使用中文;

  • 第三:我们的使用的字符格式,最多的是UTF-8,把默认代码页格式改为UTF-8试试吧

追问

我用的codeblocks,之前能够显示中文的。还有,找不到UTF-8这个选项啊。

追答

你好,这个编译器我没有使用过,根据经验,产生乱码的原因应该是这样:你的程序默认代码格式与你设置的控制台显示格式不一致,就是说,编辑文本时的格式是A,编译成二进制文件后,控制台又以其他格式读取了内容。

建议:

  • 检查一下此软件是否支持C语言中文编辑;

  • 找到产生的对应exe文件直接运行试试。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
moralistxp
2019-09-05 · TA获得超过741个赞
知道大有可为答主
回答量:2216
采纳率:76%
帮助的人:494万
展开全部
c程序源码文件字符集和cmd字符集保持一致即可
cmd是gbk,c文件也存为gbk字符集,再出入汉子
追问

好像还是不行

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光的雷咩咩
2019-09-04 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7762万
展开全部
  1. 什么编译器

  2. 输出乱码是哪句printf的结果?

  3. scanf那里没必要加&了吧

更多追问追答
追问
  1. codeblocks

  2. printf中的中文乱码,字母还好

  3. 不加&怎么录入?

追答
  1. 你上面有3句printf我问的是哪个输出的乱码

  2. 你试试不加来看

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式