Ⅰ c语言中为什么出现现烫
出现“烫”的原因是由于字符数组中的某些数组元素没赋值。
具体原因可以通过如下实例来进行说明:
char a[10];
a[0] = 'a';
a[1] = 'b';
a[2] = 'c';
a[3] = 'd';
printf("%s", a); // 输出结果就会出现很多“烫”,因为只对数组a中前四个元素进行了赋值,后面的元素未进行赋值,所以计算机默认就输出“烫”
如果作如下修改就会正常输出
char a[10];
a[0] = 'a';
a[1] = 'b';
a[2] = 'c';
a[3] = 'd';
a[4] = '\0';
printf("%s", a); // 输出abcd,因为加了结束字符'\0',而C语言中输出字符串是以结束字符'\0'作为结束输出的,所以只输出'\0'前面的所以字符,即abcd
Ⅱ c语言运行后为什么出现n多的烫烫烫烫烫!!!!
出现多个烫的原因可能是未对字符数组或字符指针进行初始化或赋值。
举例说明如下:
chara[5];
printf("%s",a);//出现多个烫,原因是未对字符数组a进行初始化或赋值
Ⅲ c语言里运行的结果有一群烫烫烫是怎么回事
我想你可能是用了字符串,但是用printf的时候格式错误,解读的时候它就把要输出的东西解读成“烫”了...
没有把代码发上来,我也不能确定哪里出错了,只能帮到这
自己再检查检查,有些编译器不会报错的问题
Ⅳ c语言编译时出现“烫烫烫烫烫烫烫烫烫”
字符数组没有结尾符号,或者打印字符串的地址错了
Ⅳ C语言运行时出现“烫烫烫烫烫烫烫烫烫”
分析
1、struct stu student[NUM]; //你不都说你定义了多个人,但只输入了一次信息吗。#define NUM 3/*人数*/
2、 case 2:print(student,NUM);break;//你调用输出函数的时候NUM参数是输出NUM个人,
3、因为只输入一个student的信息,其他student[1]、student[2].......没有值,直接输出上次内存所存,这就是随机的乱码。
解决思路
方案1:
输入信息的时候输完NUM 次也就是3次。
方案2:
调用输出的时候,只让他输出你所输入信息的个数。
case 2: print(student,1);break; //这里参数二中NUM换成 1,因为你只输入1次信息
方案 3: /**推荐方案*/
定义数组的时候初始化,使得其初始化都为0,这样输出的时候至少不会有乱码
struct stu student[NUM] = {0};
或
struct stu student[NUM] ;
memset(student,0,sizeof(stu)*NUM);
Ⅵ C语言程序后面出现烫烫~~~~~
char message[number];你这个数组没有赋初值并且在输出的时候不是根据输入个数来输出的。个人觉得你写的这个程序没必要这么复杂,其实可以直接在输出的时候判断每个字符是否为输入要删除的那个,如果是就不输出就可以了。
Ⅶ c语言出现烫烫
这是使用scanf必然会出现的现象,建议你最好是用以下函数来达成目的
getch();
getche();
kbhit();
这几个函数都是非阻塞的,而且每一个需要多余的回车,
用一个循环把他们组装起来,然后每一次有按键的时候先把数据暂存起来,然后用ANSCII码来检测这个按键是否为你想要的数据,然后进行转换,不是就扔掉,继续等待按键,一直到数据收集完毕,这样就避免了用户的无效输入。
用getch和getche接受的都是字符,就是说,你按下“1”键产生的是(char)'1' 而不是 (int) 1
这就是问什么数据采集后要进行适当的兑换了。
至于具体的做法,相信这位兄弟已经了解了,关于ANSCII码,字符型的数据的数值就是它本身的ANSCII码值。