마지막으로 누른 키의 ASCII 코드를 매 x 초마다 출력하려고합니다. 예로서x 초마다 서로 다른 출력으로 표시
는 :
난 (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");
}
편집 : 여기
주와 다른 방법입니다 지금했습니다 시험의 약간 내 문제를 해결하는 방법으로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'는 정확히 하나 개의 문자를 기다립니다 '때문이다 처리기에서 수익을 getchar가 무엇인지 표시; 대신에'read'를 사용해야합니다. –