1
をされて使用して供給されたときに期待どおりに動作しません:予想通りCプログラムは、標準入力が短いCプログラムをここで猫
次のプログラムが実行され、cmd
の値は、キーボードを使って入力される
#include<stdio.h>
int main (void){
char cmd;
while(scanf("%c", &cmd) != EOF){
if(cmd == 'q'){
printf("Thanks\n");
return 0;
}
}
return 0;
}
、すべてが動作します。私はパイプにcat
を使用して入力をしようとしていたときにq
が入力されたときに
$ ./catproblem
q
Thanks
$
しかし、プログラムはすぐに終了しません。何らかの理由で他の入力を待ってから終了します。
$ cat | ./catproblem
q
Thanks
anything
$
この現象は何の原因ですか?そして、これは修正することができますので、cat
を入力に使用すると、プログラムは正常に動作しますか?
これは意味があります。説明をありがとう! –