본문 바로가기
[ CODING STUDY ]/》C언어 코드실습

C언어 - [스톱워치, 타이머, 초 카운트, time]

by MRG 2021. 5. 11.
728x90
반응형

▣ <Windows.h> 헤더 파일은 Sleep() 함수를 사용하기 위해, <time.h> time() 함수를 사용하기 위해 선언해 주세요.
먼저 endTime에 (unsigned)time(NULL)함수를 넣어주세요. (unsigned) 부호 비트가 0으로 시간 값을 음수가 아닌 양수로만 나타내기 위함입니다. 그럼 1970년 1월 1일부터 지금까지에 시간을 초로 반환해 줍니다.
이 값에 6을 더해줍니다. 
이걸로 우리가 원하는 시간까지 초를 제한할 겁니다.


▣ 그리고 while문을 통해 startTime에 현재 시간을 넣어주세요. 그럼 whlie문을 통해 계속 반복을 하면
숫자가 초마다 늘어납니다. 
그리고 조건문을 통해 0초가 되면 종료되게 코드를 완성했습니다.
그리고 확인을 하면

 

▣ 이렇게 1초마다 줄어들면서 0초까지 반복되고 종료되는걸 확인할 수 있습니다.
그런데 계속 초가 반복해서 나와 왠지 불편합니다.
어떻게하면 좋을까요? 직접 한번 해결해 보시고 고민하고 밑에 코드를 참고해 주세요.

 

▣ 간단합니다. 
Sleep(1) 밀리초 단위로 잠시 지연을 시키고
system("cls")로 화면을 지웠습니다.

 

▣ 그럼 이렇게 하나만 보이게 할 수 있습니다.
약간 편법이지만 해결했습니다. 
이번에는 여러분들만에 방법으로 한번 고쳐보세요.
또 다른 방법을 소개하겠습니다.

 

▣ 이번에는 time() 함수를 사용하는 게 아닌 
Sleep(1000) 함수를 통해서 초를 카운트를 했습니다.
1000은 밀리 초단위로 1초를 의미합니다. 
코드를 실행하면 이렇게 0초까지 잘 실행되는 걸 확인할 수 있습니다.

▣ 이번에는 clock() 함수를 사용하겠습니다. 
clock() 함수는 간단하게 이야기하면 프로세서(컴퓨터가 어떤 일을 하고 있는 상태)가 소비된 시간을 반환하는 함수입니다. 이걸 이용해서 초를 카운터 해보겠습니다.


▣ clock_t는 clock()에 시간을 저장하는 자료형? 쯤 생각하시면 됩니다. 
그리고 start와 end로 clock()에 시간을 정해줍니다. 
중간에 Sleep(1000);을 넣어줍니다. 
그리고 end- start에 값을 time에 넣어줍니다. 
그리고 출력을 해보면 1초가 측정되는 걸 확인할 수 있습니다. 
CLOCKS_PER_SEC는 상수이고 1 clock() 1초를 의미합니다. 

 

▣ 그리고 저 코드를 활용하여 whlie문으로 이번에는 time+= 복합 연산자를 사용하여 
+더하기를 한 후에 초를 카운터 하게 만들 수 있습니다.


▣ 지금까지 공부한 초 카운터를 활용해 보세요.

728x90
반응형

댓글