注册 登录
编程论坛 C语言论坛

一个关于getchar的疑问

float_ 发布于 2022-05-08 22:37, 1280 次点击
#include <stdio.h>

int main()
{
    int i;
    char c=getchar();
    while(c!='\n')
    {
        i++;
    }
    printf("%d",i);
}


#include <stdio.h>

int main()
{
    int i;
    char c;
    while(c=getchar()!='\n')
    {
        i++;
    }
    printf("%d",i);
}
大佬为什么上面那个程序会出现问题啊?
4 回复
#2
wp2319572022-05-09 08:46
回复 楼主 float_
没有循环退出条件啊
#3
不会游泳的虾2022-05-09 09:10
见注释,供参考:
程序代码:
#include <stdio.h>
int main()
{
    int i;
    char c = getchar();
    while (c != '\n') //这里如果第一次输入的不是回车换行符'\n',
    {                 //循环里再没读入语句,就死循环了。
        i++;
    }
    printf("%d", i);
}


#include <stdio.h>
int main()
{
    int i;
    char c;
    while ((c = getchar()) != '\n') //while (c = getchar() != '\n')
    {                                //这里缺了一对 (),(c=getchar())
        i++;
    }
    printf("%d", i);
}
#4
float_2022-05-10 12:54
回复 2楼 wp231957
明白了谢谢大佬
#5
float_2022-05-10 12:54
回复 3楼 不会游泳的虾
谢谢谢谢,我明白了
1