EOFを入力する
いつの間にか失くしていたK&Rを再購入して読んでいたら、「getchar() != EOF」の結果を確認しろという課題があった。
元々のコードは以下の通りだが、普通にアルファベットや数字を入力しているだけではEOFとならず、ループしてしまう。
調べたところ、WindowsではCtrl+z、UnixではCtrl+dでEOFを入力できる模様。
思い返せば、RubyでCGIを作成するときにオフラインモードでクエリの入力後にCtrl+dを押していたのはこういうことだったんですね。
参考:烏丸通的電算処 - C言語:EOFは自分で入力すること
コード(K&R P.20)
#include <stdio.h> main() { int c; c = getchar(); while(c != EOF) { putchar(c); c = getchar(); } }