「 The C Programming Language 」 (K&R) を読み始めたのですが、関数について疑問がありgetchar()
ます。
たとえば、このコード:
#include <stdio.h>
main()
{
int c;
c = getchar();
putchar(c);
printf("\n");
}
toomanychars
+ CTRL+ D(EOF) と入力すると、単にt
. 最初に登場するキャラクターなので当然だと思います。
しかし、この別のコード:
#include <stdio.h>
main()
{
int c;
while((c = getchar()) != EOF)
putchar(c);
}
toomanychars
+ CTRL+ D(EOF) を入力すると、 が出力されtoomanychars
ます。
私の質問は、単一の char 変数しかない場合になぜこれが起こるのですか? 残りの文字はどこに保存されていますか?
編集:
答えてくれたみんなのおかげで、私は今それを手に入れ始めました...たった1つのキャッチ:
最初のプログラムはCTRL+Dを指定すると終了し、2 番目のプログラムは文字列全体を出力してから、さらにユーザーの入力を待ちます。別の文字列を待機し、最初のように終了しないのはなぜですか?