1

私は中程度の経験を持つ Java 開発者であり、コンピューター サイエンスの研究のために C 言語を学習する際に多くの問題を抱えています。多くの人が推奨しているように見える本「The C Programming Language」で試してみます。

しかし、getchar() と組み合わせた EOF のような最も単純なものには問題があります。コードは次のとおりです。

#include<stdio.h>
main()
{
    int i = 0;
    while (getchar() != EOF)
    {
        ++i;
        printf("Count of characters is %d", i);
    }
}

私は Mac OS X Lion で作業しており、本で説明されているように、ターミナルで実行するために「./a.out」を指定して「cc」コマンドを使用してファイルを実行します。そして、私が得るものは次のとおりです。

  • いつも一文字数えすぎ
  • while ループが終わらない! 入力の終わりに達した後、別の入力を待つだけです...

何が問題なのか、まったくわかりません。誰か助けてくれませんか?

4

2 に答える 2

4

いつも一文字数えすぎ

それは改行(Enter / Return)である可能性があります。

while ループが終わらない! 入力の終わりに達した後、別の入力を待つだけです

入力の終わりを通知していない可能性があります。そのために使用CTRL-Dする必要があります。

于 2011-11-29T17:50:31.377 に答える
0

「6」などの文字を入力してEnterキー(\ nに等しい)をクリックすると、コマンド「6 \ n」が送信されるため、2文字になります。Enterキーを押すだけで、「i」が1つ増えます。

EOFは、ファイルの終わりを意味し、ctrld+Dに相当します。テキストファイルを読むと便利です。それ以外は「永遠に」と言うのと同じです。

于 2011-11-29T17:55:37.740 に答える