개발환경
사용툴 : Visual Studio 2013 프로젝트 : Visual C++ console application 개발날짜 : 2015-05-08 |
출처 : cplusplus - Any possible way to create a timer to C++ program?
Timer 에 대해 찾아보다.. 괜찮은 클래스가 있어 구현해봤다.
start 함수로 Timer 를 시작하여 stop 함수전까지 시간을 측정한다.
그리고 getTime 함수로 결과 시간을 얻을 수 있다.
#include <time.h>
class MyTimer { public: MyTimer(); ~MyTimer();
void start(); void stop(); void reset(); bool isRunning(); unsigned long getTime(); bool isOver(unsigned long seconds); private: bool resetted; bool running; unsigned long beg; unsigned long end; }; |
MyTimer.cpp
#include "MyTimer.h"
MyTimer::MyTimer() { resetted = true; running = false; beg = 0; end = 0; }
MyTimer::~MyTimer() { }
void MyTimer::start() { if (!running) { if (resetted) beg = (unsigned long)clock(); else beg -= end - (unsigned long)clock(); running = true; resetted = false; } }
void MyTimer::stop() { if (running) { end = (unsigned long)clock(); running = false; } }
void MyTimer::reset() { bool wereRunning = running; if (wereRunning) stop(); resetted = true; beg = 0; end = 0; if (wereRunning) start(); }
bool MyTimer::isRunning() { return running; }
unsigned long MyTimer::getTime() { if (running) return ((unsigned long)clock() - beg) / CLOCKS_PER_SEC; else return end - beg; }
bool MyTimer::isOver(unsigned long seconds) { return seconds >= getTime(); } |
app.cpp
void main() { bool quit = false; char choice; MyTimer t; while (!quit) { cout << " s start/stop " << endl; cout << " r reset" << endl; cout << " v view time" << endl; cout << " q quit" << endl; cout << endl; choice = getch(); switch (choice) { case 's': if (t.isRunning()) { t.stop(); cout << "stopped" << endl; } else { t.start(); cout << "started" << endl; } break; case 'r': t.reset(); cout << "resetted" << endl; break; case 'v': cout << "time = " << t.getTime() << " ms" << endl; break; case 'q': quit = true; break; } cout << "------------------------------" << endl; } } |
'Programming > C/C++' 카테고리의 다른 글
lpcstr형식의 인수가 lpcwstr 형식의 매개 변수와 호환되지 않습니다 (0) | 2020.12.16 |
---|---|
[C++] 파일 입출력(ofstream/ifstream) (0) | 2015.05.08 |
[C++] Vector (0) | 2015.04.22 |
[C++]std::string 를 const char* or char* 로 변환하기 (0) | 2015.04.16 |
[C] 파일입출력 (0) | 2015.04.16 |