为什么不能用getchar()读取换行符和空格?

时间:2013-01-27 23:02:38

标签: c

我需要让用户使用getchar输入输入,并检查空格数,换行符和其他字符。

这是我的代码:

#include <stdio.h>

int main()

{

    char word;
    int spaces, newLines, theRest;
    spaces = 0;
    newLines = 0;
    theRest = 0;
    printf("please type an input:\n");

    while ((word = getchar() != '#'))
    {
        if (word == ' ')
            spaces++;
        else if (word == '\n')
            newLines++;
        else
            theRest++;
    }
    printf("number of spaces: %d, number of new lines: %d, other characters: %d", spaces, newLines, theRest);

}

对于我提供的任何输入,我只获得theRest值,其中包括所有字符。 你能告诉我这里我做错了什么吗?

1 个答案:

答案 0 :(得分:3)

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

应该是:

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