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

求指教。。字符区别函数

威猛的小绵羊 发布于 2022-10-15 11:40, 915 次点击
#include<stdio.h>
#include<ctype.h>
int main()
{
    int a, b, c;
    a = b = c = 0;
    char ch;
    while (ch = getchar() != '#')
    {
        if (iswgraph(ch))
            a += 1;
        if (isblank(ch))
            b += 1;
        if ((ch != ' ')&& (ch != '\n'))
            c += 1;
        continue;
    }
    printf("空白符为:%d\n换行符为:%d\n其他字符为:%d", a, b, c);
    return 0;
}为什么出来是这样的
只有本站会员才能查看附件,请 登录

1 回复
#2
forever742022-10-15 16:02
赋值的优先级是倒数第二
所以
ch = getchar() != '#'
的意思是
ch = (getchar() != '#')
而不是
(ch = getchar()) != '#'
而你需要的是下面这个,所以你得加括号。
1