이번에는, 프로그램이 처리되어 화면이 출력되는 동시에, 비동기적으로, 사용자 입력이 있는지 확인하는 예제를 설명하겠습니다.


#include <stdio.h>
#include <conio.h>

int main(int argc, char* argv[]){
	printf("키를 누르면 종료됩니다.\n");
	while (_kbhit() == 0){

	}
	printf("프로그램 종료\n");
	return 0;
}


6 ~ 8 라인

_kbhit 함수는 입력 버퍼에 값이 들어오는지 비동기적으로 확인하여 있으면, 정수값을 반환하고, 버퍼에 값이 없으면 0 을 반환합니다. 즉, _kbhit 함수의 반환값이 0 인 동안 while 문을 반복하라는 의미입니다. 만약, 사용자가 키를 입력하면, 입력 버퍼에 값이 들어가게 되고, _kbhit 함수는 0 이 아닌 정수값을 반환하게 될 테니, 반복문을 종료하고, 나오게 됩니다.


[실행 결과 - 사용자의 키 입력이 없는 경우]


[실행 결과 - 사용자의 키 입력이 들어온 경우]




(_kbhit 함수 설명 참고)

https://msdn.microsoft.com/ko-kr/library/58w7c94c.aspx

by kkikkodev 2015. 5. 5. 11:59