Shammer's Philosophy

My private adversaria

EOFの入力

C言語に限らず、ファイルの終わりを示す記号というか、符号のような役割をする情報がEOF。
Windows秀丸とか使っていると、テキストの最後に「EOF」と出るあれ。
End of File の略だが、プログラムの中でこれを使うことができる。


main(){
 int type = 0;
 while( (type = getchar()) != EOF ) {
  printf("%d\n", type);
 }
 return 0;
}


このようにやると、Mac OS X の場合は Ctrl + D がタイプされるまで
延々と入力を待ち続けるようになる。
EOF自体は、stdio.h で定義されていて、これはOSごとに異なるようだ。
たまたま Mac OS X の場合は Ctrl + D だったが、当然WindowsとかOSが異なれば
何を入力すればEOFとなるかは変わってくる。
これとは違う方法として、kill や Ctrl + C でも終了させられるけれど・・・