改行とEOF
入力バッファクリア方法 - Shammerismでは、getchar() の結果が \n だったら、つまり、改行だったら getchar() を終わりにする、というようにしていたが、どうやら改行での判断は一つの手段でしかないらしい。改行以外にEOFでの判定もできるようだ。
#include <stdio.h> int main(int argc, char * args[]){ puts("Type:"); while ( 1 ) { char c = getchar(); if ( c == EOF ){ printf("EOF received.\n"); break; } else { putchar(c); } } return 0; }
このようにして、実行中に Ctrl+D とやると「EOF received.」で終了した。
何文字まで入力できるものなのだろうか。これは今度やってみよう。