Hatena::ブログ(Diary)

にたまごほうれん草

2007-12-30

EOFを入力する

いつの間にか失くしていたK&Rを再購入して読んでいたら、「getchar() != EOF」の結果を確認しろという課題があった。

元々のコードは以下の通りだが、普通にアルファベットや数字を入力しているだけではEOFとならず、ループしてしまう。

調べたところ、WindowsではCtrl+z、UnixではCtrl+dでEOFを入力できる模様。

思い返せば、RubyCGIを作成するときにオフラインモードでクエリの入力後にCtrl+dを押していたのはこういうことだったんですね。

参考:烏丸通的電算処 - C言語:EOFは自分で入力すること

コード(K&R P.20)

#include <stdio.h>
main() {
  int c;
  c = getchar();
  while(c != EOF) {
    putchar(c);
    c = getchar();
  }
}
Connection: close