>> Delete Reply from No. 32224 article
No. RE: [프로그램 질문] while(?)

등록 2001-06-05 09:48:00 By localhost     조회 1
이름 조성석    

		: 터미널 상에서
: 프로그램 작성중에 문제가 생겨서 질문드립니다.
: 도스에서 터보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