1

我正在编写一个简单的程序来计算用户输入的字符数,我写了一个 if 来检查是否有换行符但仍在打印它..

编码:

#include <stdio.h>

int main()

{
    char ch;
    int numberOfCharacters = 0;
    printf("please enter a word, and ctrl + d to see the resault\n");

    while ((ch = getchar()) != EOF)

    {
        if (numberOfCharacters != '\n')
        {
            numberOfCharacters++;
        }


    }

    printf("The number of characters is %d", numberOfCharacters);

    return 0;
}

我究竟做错了什么?

4

2 回答 2

6

想想这一行:

    if (numberOfCharacters != '\n')

这怎么可能有意义?您正在将到目前为止读取的字符数与换行符进行比较,这就像将苹果与橙子进行比较,肯定行不通。这是您应该检查的另一个变量...

于 2013-01-31T20:33:31.760 回答
5

将您的循环更改为此。

while ((ch = getchar()) != EOF)
{
    if(ch != '\n') 
        numberOfCharacters++;
}
于 2013-01-31T20:33:02.007 回答