>> Edit article
이름
제목
패스워드
: 터미널 상에서 : 프로그램 작성중에 문제가 생겨서 질문드립니다. : 도스에서 터보c로 작성할 경우 : : while(!khbit()) : { : 어쩌구 저쩌구; : } : : 하면 키보드 치면 무한 루프를 빠져나오지 않습니까? : : 그럼 리눅상에서 while( )에 뭘 집어넣어야 되는 거죠.. : 아님 비슷한 루틴을 어떻게 작성할 수 있는 겁니까? : : while(?????) : { : 어쩌구 저쩌구; : : } : : ?????는 아무키나 눌러지면 while문 빠지기... : 내가 바본가??? 입력은 원래 shell을 통해 들어오기 때문에 정상적인 방법으로는 리턴 키를 입력 받아야 됩니다. 그래서 curses라는 library가 생겼습니다. 간단하게 비슷한 기능을 만들어 보았구요... gcc test.c -lncurses 하셔야 컴파일(링크)이 될 겁니다. #include <stdio.h> #include <sys/time.h> #include <sys/types.h> #include <unistd.h> #include <curses.h> int kbhit() { fd_set fds; struct timeval tv; tv.tv_sec = tv.tv_usec = 0; FD_ZERO(&fds); FD_SET(STDIN_FILENO, &fds); return select(STDIN_FILENO+1, &fds, (fd_set *)0, (fd_set *)0, &tv); } main() { WINDOW *win = initscr(); cbreak(); noecho(); while (!kbhit()) { printf(" NOT key pressed ..."); fflush(stdout); sleep(1); } endwin(); } 이건 님께서 원하는 수준이고 만약 conio.h 의 interface를 원하시면 man ncurses해보세요 ... ^^
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved