我的C程序错误地计算字符

时间:2016-06-06 13:55:03

标签: c count character

每个人,所以我编写了一些代码来计算用户在控制台中键入的字符,使用getchar()和while循环直到输入EOF字符,但它会为计数增加更多它应该变量。例如,我输入3个字符,然后输入EOF字符(在本例中为'z'),最后输出我输入6个字符,如果我输入4个字符+'z'则表示8,如果5表示10它显示x2个字符数。

#include <stdio.h>
#define END 'z'

int main()
{
    printf("Hello:\n");
    int count = 0;
    int c;

    while ((c = getchar()) != END)
    {
        count++;
    }

    printf("You entered %d charaters.", count);
}

为什么会这样? :/

1 个答案:

答案 0 :(得分:4)

每次使用getchar()输入一个字符,然后按&#34;输入&#34;,再输入一个char字符作为换行符。

while ((c = getchar()) != EOF)
{
    if (c=='\n')
        continue;
    count++;
}

这将解决您的问题。

我已经用你和我的代码做了一些测试,只是为了看看是不是问题。输出在这里:

使用您的代码输出:

Hello:
a
s
d
df
You entered 9 charaters.

Hello:
asdf

You entered 5 charaters.

使用我的代码输出:

Hello:
a
s
d
f
You entered 4 charaters