1. ホーム
  2. c

[解決済み] C言語におけるEOFとは何ですか?

2022-03-04 15:32:39

質問

最後の印刷を見るにはどうしたらいいのでしょうか?つまり、EOFに何を入れればいいのか?定義を確認したところ、EOFは-1だと書いてありました。

また、Ctrl-Dを入力しても何も表示されません。

#include <stdio.h>

int main() {
 int c;
 while((c = getchar() != EOF)) {
  printf("%d\n", c);
 }
 printf("%d - at EOF\n", c);
}

解決方法は?

Linux システムと OS X では、EOF を発生させるために入力する文字が Ctrl - D . Windowsの場合は Ctrl - Z .

オペレーティングシステムによっては、この文字が行の最初の文字、すなわち 入力 . コンソール入力は行指向であることが多いので、EOF文字を認識するのは、その後に 入力 .

そして、もしその文字がEOFとして認識されるなら、あなたのプログラムは実際の文字を見ることはないでしょう。その代わり、C言語プログラムでは -1 から getchar() .