3

私はC プログラミング言語(K&R) で C を学んでいます。

テキスト エディターと実行中の gcc の間を行き来したくないので、IDE として xcode を使用することにしました。これまでのところ、セクション 1.5.2 まで問題なく本の例に従うことができました。

有効な (?) プログラムを指定すると...

#include <stdio.h>

void main()
{
    long nc;

    nc = 0;
    while (getchar() != EOF)
        ++nc;
    printf("%ld\n", nc);
}

...入力に含まれる文字数を示す最終出力が表示されません。xcode コンソール ウィンドウから入力しています。

デバッグ中に、私のプログラムが while ループでスタックし、EOF トークンに遭遇しないように見えます。これに対応するために、代わりに改行を新しい条件として に置き換えEOFました"\n"。これも何もせず、int とポインターの比較警告が表示されます。

ここで何が間違っていますか?

Xcode を使用して K&R をフォローできますか?

4

1 に答える 1

11

( control ^D-d) と入力して、EOF.

改行で改行したい場合は、 の戻り値getchar'\n'ではなくと比較する必要があります"\n"。前者はchar改行の実際の値です。後者は、その値を持つ char へのポインターです。まだ意味がわからない場合でも、心配しないでください。

于 2010-01-23T00:27:32.620 に答える