▣ <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+= 복합 연산자를 사용하여
+더하기를 한 후에 초를 카운터 하게 만들 수 있습니다.
▣ 지금까지 공부한 초 카운터를 활용해 보세요.
'[ C언어 ] > - C언어 실습연습' 카테고리의 다른 글
C언어 - [글자 색 변경, 콘솔창 크기, 콘솔창 색, 글자 배경색] (0) | 2021.06.02 |
---|---|
C언어 - [malloc, 메모리할당, memset] (0) | 2021.05.17 |
C언어 - [공용체, 열거형, 구조체비트필드] (0) | 2021.05.17 |
C언어 - [구조체, 구조체 포인터, 구조체배열, 구조체포인터배열] (0) | 2021.05.16 |
C언어 - [글자 위치 이동, 커서 이동 코드] (0) | 2021.05.06 |
댓글