목차
안녕하세요~~! 코딩하는 메추라기 케일입니다.
이번 글은 시간 관련 함수 2탄인데요...
오늘 제가 소개할 함수는요 바로 현재 시간을 받아와 주는 함수입니다.
----필요한 헤더파일----
필요한 헤더파일은 1개밖에 없지만 그래도 그냥 써봤습니다.
▶<time.h>
<time.h> 헤더파일에는 오늘 저희가 이용할 clock 함수와 clock_t 자료형이 포함되어 있습니다.
----필요한 함수----
필요한 함수입니다.
▶clock()
clock 함수는 우리가 만든 코드가 프로그램을 시작해서 clock() 함수를 사용할 때까지 걸린 시간을 나타냅니다.
필요한 함수는 clock()밖에 없지만 오늘 필요한 것은 1개가 더 있습니다.
시간을 담는 자료형 clock_t 입니다.
clock_t는 clock()함수로 측정한 시간을 담는 자료형입니다.
또 clock_t 자료형을 double이나 int 형으로 우리가 알아볼 수 있게 만드는 것도 중요합니다.
CLOCKS_PER_SEC 라는 걸 통해 clock_t 자료형을 초 형태로 만들 수 있습니다.
이렇게 말이죠
clock_t start = clock();
clock_t end = clock();
cout<<double(end - start) / CLOCKS_PER_SEC;
그럼 이제 clock() 와 clock_t를 활용해서 무언가를 만들어 보겠습니다.
----예제----
한번 clock()함수와 clock_t 자료형을 사용한 예제를 만들어 보겠습니다.
일단 저는 프로그램이 실행되는데 얼마나 시간이 걸릴지 측정해주는 걸 만들어 보겠습니다.
clock_t start = clock();
이렇게 start라는 변수를 만들어 줬습니다.
그 다음에는
for (int i = 0; i < 100000; i++) {
for (int j = 0; j < 100000; j++) {
a++;
}
}
이렇게 해서 엄청나게 오래 걸리는 연산을 추가해 봤습니다.
그 다음 마지막으로
저 위의 연산을 하는데까지 걸린 시간을
clock_t end = clock();
end 변수에 넣어줬습니다.
그리고 나서 걸린 시간을 측정하기 위해
cout<<"걸린 시간: "<<double(end - start) / CLOCKS_PER_SEC;
을 놔 줬습니다.
실행시키니
이렇게 되네요
컴퓨터가 느린건지... 웹사이트가 느린건지 25초나 걸렸습니다.
그럼 한번 타이머를 만들러 가보겠습니다.
----타이머 만들기----
그럼 이제 타이머를 만들어보겠습니다.
먼저 맨 처음에 시간을 입력받고
그 다음으로 clock_t 자료형으로 start 변수를 만든 다음
다시 clock_t 자료형으로 end 변수를 만들고 end변수를 시간이 갈수록 증가시킨 다음에 end - start 가 입력받은 시간이 되는 순간 멈추게 하면 되겠죠?
먼저 시간을 입력받겠습니다.
int second = 0;
cout<<"초를 입력해 주세요: ";
cin>>second;
요렇게 한 다음에
이제 start라는 변수를 지정해주겠습니다. start변수는 타이머가 시작된 때를 담는 변수입니다.
clock_t start = clock();
그 다음 또다시 end란 변수를 선언해 줍니다.
clock_t end = clock();
이제 end - start가 second가 될때까지 end의 값을 다시 정해 줄겁니다.
while (true) {
end = clock();
if (double(end - start) / CLOCKS_PER_SEC == second) {
break;
}
}
이게 어떤 뜻이냐면
일단 while(true)로 계속 이 식이 반복됩니다.
아까 선언시킨 end란 변수도 계속 현재 시간으로 새로운 값을 할당해 줍니다.
계속 반복하다가 end랑 start랑의 차가 아까 입력했던 second와 같으면 저 반복문을 중단시킵니다.
전체 코드입니다
#include <iostream>
using namespace std;
int main()
{
int second = 0;
cout<<"초를 입력해 주세요: ";
cin>>second;
clock_t start = clock();
clock_t end = clock();
while (true) {
end = clock();
if (double(end - start) / CLOCKS_PER_SEC == second) {
break;
}
}
cout<<"끄읕!";
}
실행을 시켰더니
잘 됩니다
이건 사진이지만 여러분도 하시면 잘 될 것입니다!
이번 글은 여기까지입니다!
다음은 오름차순 내림차순 청렬 함수에 대해 알려드리겠습니다!
'코딩 > C++ 함수모음' 카테고리의 다른 글
C++ 기다리기 함수, 타이머(1) (0) | 2021.08.11 |
---|---|
C++ 절댓값, 제곱, 제곱근, 세제곱근 함수 (0) | 2021.07.02 |
C++ 소숫점 n번째 자리까지 반올림, 올림, 내림하기 (0) | 2021.06.25 |
C++ 랜덤함수 쓰기, 랜덤함수 범위 정하기 (0) | 2021.06.24 |