Prosto

[C언어] Sleep 함수, 예제와 문제 본문

Programing/C Programing

[C언어] Sleep 함수, 예제와 문제

Prosto 2016. 9. 15. 00:09

 

이번에 간단하게 이야기해볼 내용은 C언어나 winAPI에서도 사용되는 Sleep함수입니다.

 

C 공부를 하는 중 한번쯤 만나볼 수 있는 Sleep! 무엇이고, 어떻게 사용할까요?

 

Sleep - (잠을)자다

Sleep함수는 프로그램이 잠깐 잠을 자도록하는 함수입니다.

우리가 보는 입장에서는 지연시키는 함수라고 볼 수 있죠.

 

windows.h를 참조하여 사용할 수 있고, 사용방법은 굉장히 간단합니다.

Sleep(시간); 형식으로 사용되죠.

여기서 시간은 밀리초(ms)입니다. [참고로 1000밀리초(ms) = 1초(s)입니다.]

 

그렇다면 Sleep(1000);이라고 되어있다면?

 -> 1초간 지연시키는 것이고,

Sleep(3500);이라고 되어있다면?

 -> 3.5초간 지연시키는 것이겠죠?

 

정말 간단한 예제 소스입니다.

 

#include<stdio.h>

#include<windows.h>//추가

 

int main(void) {

    printf("Sleep 실행 전!\n");

    Sleep(1000);//1초 지연

    printf("Sleep 실행 완료!\n");

    return 0;

}

 

콘솔 프로젝트 -> .c 파일로 소스를 작성하여 실제로 컴파일해보면 1초 후 실행 완료 문구가 뜨는 것을 확인할 수 있습니다.

여기에 1000 부분을 5000으로 바꾸면 5초 후에 나타나겠죠?

 

(실행결과)

 

 

 

그렇다면 직접 한번 사용해봐야 기억에 남겠죠?

 

문제를 하나 드리겠습니다.

1. 카운트 다운 프로그램을 작성해보세요. 실행결과는 다음과 같아야합니다. (hint : for / Sleep 사용)

(실행결과)

(여기서 10! 9! 8!은 1초에 하나씩 나타나야합니다.(지연되어야 함))

 

 

 

 

 

그렇다면 해당 프로그램을 업그레이드해볼까요?

어떻게 보면 2중 for문 문제네요.

'!'의 개수를 10! 9!! 8!!!처럼 점점 늘려보세요. 뭔가 긴장감이 돌도록 말이죠.

 

(실행결과)

(아까 예제의 업그레이드 버전입니다. ! 개수가 늘어나는 게 보이죠?)

 

 

 

이렇게 Sleep 함수 예제와 문제, 그리고 2중 포문을 이용한 업그레이드 문제까지 해봤습니다.

 

궁금한 점 있으시면 댓글이나 별도 연락주시길 바랍니다.

Comments