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 に答える