n=0;for(ch=getchar();ch!=✀尀n✀;n++) ; 请问这个语句输入回车为什么会陷入死循环呢?

2025-01-08 09:39:45
推荐回答(3个)
回答1:

第一个是要了解for循环ch初始化的原理,getchar()只赋值一次,也就是说ch的值只有一个,循环再怎么执行ch的值不会改变(你的程序是这样的)
第二个你要了解getchar()的特性,是需要输入回车才会结束函数的,在输入 a回车 之后ch的值实际上是‘a’ 不等于'\n'

回答2:

童鞋
for(ch=getchar();ch!='\n';n++) ;
里ch永远都是第一次getchar();的值,你准备什么时候让他移动一下?

回答3:

int n=0;
char ch=getchar();
while(ch!='\n')
{n++;}