新手求助
#include <stdio.h>#include <conio.h>
void main()
{
int i = 0;
char c;
while(1)
{
c = 0;
while (c != 13 && c != 27)
{
c = getch();
printf("%c\n",c);
}
if (c == 27)
{
break;
}
i++;
printf("The No . is %d\n",i);
}
printf ("The end\n");
}
这个c=0 是干啥用的啊 ,为啥不加就不行啊 c是char型,对照ascii表可查看27为ESC键,13为回车键。
c在声明之后,没有赋值,它的值是不确定的(第一次进入循环),同时清除c等于回车键的值(以后循环) 因为在前面声明了c为char,而没有初始化
然后变量直接在使用之前都应该进行合理的初始化 本帖最后由 理想小青年 于 2018-5-10 11:50 编辑
简单来说
char c; c这个字符串占一个字节,这个字节里是啥东西未知(你没初始化),所以c这个字节存的可能是别的数据,可能是数字也可能是字符串。
一个未知的字节(c),你非给他做操作,结果当然也是未知的{:10_249:}
而且你这个两个循环必须保证,内循环开始c都得初始化!
页:
[1]