00问答网
所有问题
C语言printf("%s",a);输出数组后面有乱码,为什么?
如题所述
举报该问题
推荐答案 2013-06-29
那可能是你的数组没有初始化吧,前面你赋值了,但是后面是随机值,打印出来就是乱码
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/jerrDen0j.html
其他回答
第1个回答 2013-06-29
其实我也遇到了,如果不是在定义数组的时候边定义边赋值,而是在后面对单个元素赋值,其它未被赋值的元素不会自动置0,而是
乱码
。解决办法是只输出被赋值部分,使用
for循环
输出。
本回答被网友采纳
第2个回答 2013-06-29
没初始化,或者未对数组赋值
相似回答
C语言数组输出
出现
乱码
答:
由于hello 只有5个字节,而str循环中
输出
的是50个字节的内容,剩下的45字节的空间,都还没有初始化过。访问未曾初始化的内存,就会出现意想不到的输出结果(不应该这么做)所以修改for循环为 for(i =0; str[i] != '\0'; i++){
printf(
XXX)} 就可以了~ 其中'\0'是字符串的结束符。
printf输出数组
最后多了两个
乱码
答:
数组c
h没有进行初始化。使用数组保存字符串时,需要保留一位'\0',作为终止标记。建议使用下记语句进行初始化。char ch[nn + 1] = {0};
C语言
栈的操作时不能正常
输出,输出乱码,
如何解决?
答:
代码不完整
。可能是printf操作了中文了。关于中文的输出应该使用wprintf,中文字符串常量应该使用 L"中文" 的格式,还需要包含string.h 以及 locale.h,并且需要在wprintf调用前调用setlocale(LC_ALL, "chs");
C语言
文件
输出
时,输入数据后
为什么
会出现
乱码
答:
if(fwrite(&stud[i],sizeof(struct studentType),1,fp)!=1) 简单看了下,这行有问题,往文件里写的时候是把一个字符串写进去,stud[i]是一个struct,强行把它序列化的话,内存中的存储不是连续的,这样写就会写入一些没用的数据,导致出错。考虑一下怎么把struct序列化,再看看struct的中的字节...
大家正在搜
C语言printf无法输出
c语言printf输出
c语言printf输出字符串
c语言printf输出中文
c语言printf输出换行
printf输出数组
用printf输出字符数组
C语言printf函数
printf怎么输出空格
相关问题
C语言中用%s输出数组遇到的问题
c语言输入输出数组,怎么最后输出的是乱码?
C语言,关于printf()输出字符串(数组)出现乱码的解释...
关于C语言字符数组输出问题,在printf输出时,二维数组时...
这段C语言代码为什么运行结果输出数组里老是有一个位置是乱码?
C语言 字符串输出时最后出现一个乱码 在线等
C语言输入字符数组,以##标志输入结束,再输出字符数组,为什...
why在C语言中将gets读进来的字符串放在一个int型的数...