ddgw.net
当前位置:首页 >> 我编写的C语言程序怎么执行后出现中文乱码? >>

我编写的C语言程序怎么执行后出现中文乱码?

getchar()函数读取了你的换行符,引起了这个错误.你输入a+回车实际上后面有两个换行符,所以每个字母输出了2次 x = getchar(); if(x>95) printf("大写字母为:\n");putchar(x - 32);这样就好了

程序没有错误,可以在BCB6正常显示,是系统设置有误,如果想让程序的通用性更好以便不再出现乱码,请将程序中的所有中文都改为英文.

你没有设置结束标记'\0',就把a的所有内存内容 都输出了 主要就是你使用输出的那一段内存没有初始化 发下你的代码?比如#include<stdio.h> void main() { char a[20]; a[1]='1'; a[18]='2'; a[19]=0; printf("%s",a); } 解决方式:#include<stdio.h>#

数组 name 没有初始化引起的,需要先初始化所有元素的值为0,再进行输入.没有初始化时,数组中元素的值一般不为0,而是一些随机值,这样printf函数就不知道数组中的字符是否已经结束(因为以0作为字符串结束的),将哪些随机值看作字符串也打印出来,所以有中文乱码.

调试完成执行并没有出现乱码呀,你将代码复制重新建文件夹运行一遍呢,最好是先吧程序关联,在清除一下缓存等痕迹,电脑也许被你整糊涂了

你用的是vc6.0吧,6.0的printf经常会显示成地址,建议使用2008或2010

函数intput有问题 只能录入a[0][0],a[0][1];j没有再次初始.

出现汉子…… …… '\1'表示ascii为1的字符,这个没问题 问题是ascii(标准的)一共才128个,你后面用219, 当然会乱码 而汉字在计算机中是每两个字节存储一个的,你的两个连起来的219刚好被识别成了 ' 圹 ', 所以会这样.

和编译器有关,可能你用的编译器中文支持不好 一般vc++都支持中文

一般情况下,如果是在数组输出显示时有乱码出现,那很可能是因为你输出的数组中的元素的下标超出了你预定的数组数组的范围,比如定义数组为a[5]大,但是输出显示的有a[5]或者之后的元素.你再检查一下.

网站首页 | 网站地图
All rights reserved Powered by www.ddgw.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com