为什么是乱码 谢谢各位

#include
int main(void)
{
int i=0;
char letter;
while(letter=getchar()!='#')
{
printf("%c%d",letter,letter);
i++;
if(i==8)
break;
}
printf("\n");
return 0;
}

#include
int main(void)
{
int i=0;
char letter;
letter=getchar();
while(letter!='#')
{
printf("%c\t%d\n",letter,letter);
i++;
if(i==8)
break;
letter=getchar();
}
printf("\n");

return 0;

}
这样就不会,我认为是while()里面的“letter=getchar()!='#'”有问题,=的运算等级最低,那样就会先进行!=再赋值给letter,从而导致乱码,如有有更好的解析请告诉我。

这句应该这样写

while((letter=getchar()!='#'))

你少了括号

while(letter=getchar()!='#')
改成
while(getchar()!='#'){
lettet=getchar()
就是这样,输入的时候注意,enter也是一个键,也是字符

 #include
int main(void)
{
int i=0;
char letter;
while(getchar()!='#')
{
letter=getchar();
printf("%c%d",letter,letter);
i++;
if(i==8)
break;
}
printf("\n");
return 0;
}