Time Delay Loop
시간 지연 루프
- 설정한 시간만큼 프로그램 실행시간을 의도적으로 지연시키는 동작을 하는 루프이다.
- 중요한 메세지를 사용자가 읽을 시간을 주기 위해서 사용할 수 있다.
- 기본적인 원리는 시스템 시계가 클럭 수를 카운트하도록 만드는 방식이다.
- ANSI C와 C++ Library에서 제공하는 clock()
함수와
clock()
과 clock_t
타입을 포함하고 있는 <ctime>
헤더파일을 포함시켜야 한다.clock()
- 프로그램이 실행된 순간부터 이 함수가 호출된 순간까지 경과된 시간을 리턴한다.
- 리턴 값은 Second 단위가 아니다.
- 반환하는 타입이 시스템에 따라 다르다. (long
, unsigned long
등)clock_t
- clock()
가 리턴하는 타입의 Alias 이다.
- 컴파일러는 clock_t
타입을 보면 그것을 적절히 long
타입이나 unsigned int
타입 또는 시스템에 적절히 맞춰서 변환한다.
- clock()
과 함께 <ctime>
헤더파일 내에 정의되어 있다.<ctime>
(<time.h>
)
- clock()
을 포함하는 헤더파일이다.
- 초당 시스템 시간 단위 수를 표시하는 기호 상수 CLOCKS_PER_SEC
를 통해
clock()
함수의 리턴값을 초 단위의 시간으로 환산할 수 있게 한다.
(초 단위 시간 = clock() / CLOCKS_PER_SEC
)
Example. Time Delay Loop
#include <iostream>
#include <ctime>
using namespace std;
int main() {
cout << "희망하는 지연시간 : ";
float secs;
cin >> secs;
clock_t delay = secs * CLOCKS_PER_SEC;
// 변수 delay에는 희망 지연시간이 초 단위로 저장된다.
cout << "카운트를 시작합니다.\a\n";
clock_t start = clock();
while (clock() - start < delay);
// clock()-start 는 루프를 돌면서 경과한 시간을 의미한다.
cout << "종료" << endl;
return 0;
}