스페이스를 꾹 누르고 있는동안 특정변수의 값이 0.5초 간격으로 증가하게 만들고 싶습니다.

조회수 589회

스페이스를 누르기 시작하기 전까진 코드를 실행하지 않다가, 스페이스를 누르는 순간부터 스페이스에서 손을 떄는 순간까지 0.5초 간격으로 특정 변수를 증가시키고 싶은데, 스페이스를 입력받는 순간 누르고 있어도 툭 끊기고 while(kbhit())를 탈출합니다. 어떻게 해야 좋을까요??

printf("스페이스를 눌러 주사위를 굴려주십시오...(누를수록 주사위 게이지가 차오릅니다.)\n");

        while (1)//스페이스를 누를때까지 대기한다. 엔터이외의 다른키를 입력받으면 무시한다.
        {
            char a;
            a = getch();
            if (a == 32)
            {
                break;
            }
        }

while (kbhit()) //키보드가 눌린 상태라면 1을 반환하고, 눌리지 않은 상태라면 0을 반환한다. { char a; a = getch();

            if (a == 32)
            {
                dice_power = dice_power + 1;
                            }

                            Sleep(500);
                    }

위 예시는 제가 사용한 코드입니다. 전체코드를 가지고 오고 싶지만 전체코드가 너무 길고 복잡하기 때문에...일부 코드만 가져왔습니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • OS에 따라 다른 문제가 됩니다. 질문자는 윈도우에서 작업할 듯 싶은데...윈도우 CMD 에서 키이벤트처리는 다른 영역의 공부를 더 해야 합니다.해당 링크를 참조해보세요. https://docs.microsoft.com/en-us/windows/console/console-functions 정영훈 2018.11.24 02:14
  • 그리고 질문의 경우는 보통 GUI 프로그램에서나 선호하는 방법입니다. CMD라면 그냥 변수값을 입력받는 형태로 하게 됩니다. 정영훈 2018.11.24 02:15

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)