この K&R の例に関するサイトを見回したところ、答えは「なぜこれは int 型なのか、それとも EOF なのか?」を中心に展開しているようです。ちょっとみんな。私はそれらを理解していると信じています。よく分からない結果です。私は、このコードが 1 文字を取り、それを出力してから、別の文字または EOF を待つことを期待していました。
私が見る結果は、リターンを押すまで入力を待っていることです。その後、入力したすべてが表示され、さらに入力を待っています。
テキストストリームをcarrage returnで終了し、putchar(c)がどこかに隠れているかを表示するまで、whileループは単に「ループ」していますか?
コードは次のとおりです。
#include <stdio.h>
/* copy input to output: 1st version */
main()
{
int c;
c = getchar();
while(c != EOF) {
putchar(c);
c = getchar();
}
}
ここで、while の直前の行の前に putchar(c) をこっそり入力すると、期待どおりの結果が得られます。テキスト ストリームを入力して Return キーを押す必要があります。結果はストリームの最初の文字になり、プログラムは終了します。
明らかに、私が行っている大きな絵のギャップがあります。
ご協力ありがとうございました