最後に押されたキーのASCIIコードをx秒ごとに出力します。例としてx秒ごとに異なる出力で何かを表示
:
iは(97)を押した場合、端末は、97すべてのX秒を示すべきです。今、w(119)を押すと、プログラムは97の代わりに119を出力します。 これまでのところ、私のプログラムは私が押した最初のキーを印刷しています。
int main(int argc, char const *argv[]){
printf("Hello World!");
while(1){
movePlayer();
fflush(stdout);
sleep(1);
}
return 0;
}
void movePlayer(){
system("/bin/stty raw");
int input = getchar(); //support_readkey(1000);
//fprintf(stdout, "\033[2J");
//fprintf(stdout, "\033[1;1H");
printf("\b%d",input);
system("/bin/stty cooked");
}
EDIT:ここ
は、メインおよびその他の方法です私は今てきたテストの少し私の問題を解決する方法でint read_the_key(int timeout_ms) {
struct timeval tv = { 0L, timeout_ms * 1000L };
fd_set fds;
FD_ZERO(&fds);
FD_SET(0, &fds);
int r = select(1, &fds, NULL, NULL, &tv);
if (!r) return 0;
return getchar();
}
に戻りますのgetchar内容を表示。代わりに 'read'を使う必要があります。 –