
正文
c语言非法输出烫是什么原因,c语言非法数据包括什么
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c程序总是输出烫是怎么回事??
输出烫烫烫烫是因为vc会自动把未用函数的局部变量空间按字节全部初始化为CC。而定义的字符数组空间不够,所以就占用了那部分不属于自己的空间,因为cout输出char*是要遇到空字符才停止的,所以便把那些垃圾都打出来了。
你输入的格式不对。scanf(%d,%c,&n,&c);这个语句就是你要你输入一个数字之后再输入一个逗号(,)再输入一个字符 最后再按回车的。 楼主懂了没。 不懂就追问。
c[20]={0};这里要初始化。不初始化的话,系统默认就是:烫烫烫烫 由于link时,你没有把最后一个字符串的结束符号\0复制过来,所以输出时认为没有结束,直到遇到\0。
这是由于字符串输出出现问题所致。通常是串结束符丢失,或是字符串首指针错误,或未设置字符串所致。原则上就是这样处置,把错的改过来就行了。要把具体代码贴出来,才能说出如何改正。
因为你的字符串没有正确的结束符\0,有了这个\0后,就不会出现这个问题了。就是把字符串里面的数据当UNICODE来显示,但是里面的内容还不正确,系统就使用烫这个字来代替。
相关问答
Q1: c语言中输出有个烫字,求高人指点
因为你没有给字符串置结束符,所以,把内存中的随机值按字符输出来了 puts(a)表示输出字符串a。a是字符串首地址,puts从首地址开始输出,直到遇到\0结束输出 你在for(){ }循环之后,加一句:a[i]=\0;这样就好了。
输出烫烫烫烫是因为vc会自动把未用函数的局部变量空间按字节全部初始化为CC。而定义的字符数组空间不够,所以就占用了那部分不属于自己的空间,因为cout输出char*是要遇到空字符才停止的,所以便把那些垃圾都打出来了。
在字符数组最后加上 \0,作为字符串结束标志。
char _name[20] = {0};//没有初始化。
因为str2[80]没有初始化的时候。编译器默认分配的字符,就是那些乱码 烫~~~输出puts函数是遇到'\0'结束符就结束字符串的输出,没有结束符标志自然全部输出,会有乱码 如果你不进行str2[i] = \0;赋值的话。
Q2: c程序出现“烫”的原因
这是由于字符串输出出现问题所致。通常是串结束符丢失,或是字符串首指针错误,或未设置字符串所致。原则上就是这样处置,把错的改过来就行了。要把具体代码贴出来,才能说出如何改正。
输出烫烫烫烫是因为vc会自动把未用函数的局部变量空间按字节全部初始化为CC。而定义的字符数组空间不够,所以就占用了那部分不属于自己的空间,因为cout输出char*是要遇到空字符才停止的,所以便把那些垃圾都打出来了。
c[20]={0};这里要初始化。不初始化的话,系统默认就是:烫烫烫烫 由于link时,你没有把最后一个字符串的结束符号\0复制过来,所以输出时认为没有结束,直到遇到\0。
输出b[]时,for循环应该为:for(ne=0ne7;ne++);因为b[]里面一共有7个字符。七个之后为乱码。你多输出了三个乱码。“烫”为乱码。
出现多个烫的原因可能是未对字符数组或字符指针进行初始化或赋值。
之所以出现烫烫,是因为你没有对char a进行初始化,定义一个变量而不初始化总是很危险的,因为你定义的一个变量有了自己的内存空间,但它却并不知道这个值到底是什么。建议每个内置类型的对象都要初始化。
c语言非法输出烫是什么原因的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言非法数据包括什么、c语言非法输出烫是什么原因的信息别忘了在本站进行查找喔。







