以下のコードは、入力した文字を、1秒間隔で画面に出力するものです。
実行時に、aキーとエンターキーを素早く10回程度入力すると、入力を終えているにも関わらず、1秒毎にaが出力され続けます。
aキーとエンターキーを10回入力すると、どこかのバッファに蓄えられ、それがprintf()に渡されていると思うのですが、そのバッファを強制的に消去することは可能でしょうか?
aキーとエンターキーを素早く10回程度入力するのに3秒かかったとしたら、3つのa(3秒分のa)だけ画面に出力して、それ以降のaは、出力しないようにしたいです。
どうすればよいのでしょうか?
半日掛かっても全くわからなかったので、質問させて頂きました。
c
1#include <stdio.h> 2#include <unistd.h> 3 4int main() 5{ 6 while(1){ 7 sleep(1); 8 char in; 9 in = getchar(); 10 printf("%c", in); 11 } 12 return 0; 13}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。