2017-12-08 9 views
-2

C로 스톱워치 클래스를 작성해야합니다. 내가 이것을하려고하는 방법은 랩을 저장하는 변수 ('time')와 시계가 시작되거나 멈추는지를보기 위해 사용하는 bool을 정의하는 것입니다. char을 입력하면 타이머가 시작되고 time1을 설정해야합니다. 다른 문자가 입력되면 boolfalse으로 전환하고 time2으로 설정 한 다음 time2-time1을 인쇄합니다. 이것은 'n'이 입력 될 때까지 반복 가능해야 함C++의 스톱워치 클래스

나는 time_t의 단위가 무엇인지 알지 못한다. 나의 코드에서 나는 간격을 측정하려고 할 때마다 ± 40 단위의 반환 값을 얻는다. 무릎, 내가 추측하고있는 프로그램의 런타임 및 실제로 시간의 시간입니다.

#ifndef stoppuhr_hpp 
#define stoppuhr_hpp 

#include <iostream> 
#include <time.h> 

class Stoppuhr{ 
private: 
    bool running; 
    clock_t time; 

public: 
    void pushButtonStartStop() { 
     char t=0; 
     running=false; 
     time=0; 
     std::cout << "to start/stop watch please press a key, to end 
clock type 'n' " << std::endl; 
     clock_t time1=0; 
     clock_t time2=0; 
     std::cout << time; 

     while (t!='n') { 
      std::cin >> t; 
      running= !running; 
      if (running) { 
       time1=clock(); 
      } 
      else { 
       time2=clock(); 
       time+=time2-time1; 
       std::cout << time << std::endl; 
      } 
     } 

    } 

}; 

#endif /* stoppuhr_hpp */ 
+0

C++에서'#include '은 time.h가 아니어야합니다. 'time_t '단위는 POSIX 호환 시스템에서 초 단위입니다. C++ 표준에 의한 유일한 보증은 산술 형식으로 정의된다는 것입니다. –

+0

저는이 기능에 익숙하지 않지만 Google에 "time.h clock()"[첫 번째 제안] (http://www.cplusplus.com/reference/ctime/clock/)에 대한 답변을 제공합니다 . – Beta

+0

분명히 숙제 문제입니다. –

답변

0

이 나는 ​​또한에 시간 time_t의 어떤 단위 이해 확실히 모르겠습니다.

time_t으로 표시 시간의 단위는 구현 지정됩니다. 대개 POSIX에서 지정한 초를 나타냅니다.

그러나 프로그램의 어느 곳에서나 time_t을 사용하지 마십시오. 내가 추측하고

프로그램

내가 추측하는 대신 문서를 읽을하지 않는 것이 좋습니다의 실행이다. clock()은 특정 시점 이후로 프로그램에서 사용한 프로세서 시간을 반환합니다. 따라서 clock()에 의해 반환 된 두 시간대를 차감하면 해당 시간대 사이에 사용 된 프로세서 시간이 제공됩니다. clock_t의 단위는 1/CLOCKS_PER_SEC 초입니다.

i는 ± 40 단위 clock

입상 구현 지정된 때마다의 반환 값을 얻을. 시스템에서 40 단위 일 수 있습니다. 이 프로그램은 입력을 기다리는 동안 프로세서 시간을 거의 소비하지 않습니다.


나는 스톱워치 클래스를 작성해야

스톱워치 일반적으로 즉 벽 시계 시간을 실제 시간을 측정한다. 이 작업에서는 프로세서 시간을 측정하는 것이 쓸모 없을 것입니다.

대신 std::chrono::steady_clock::now을 사용하는 것이 좋습니다.

time.h 사용을 고집하는 경우 time(nullptr)을 사용하여 벽시계 시간을 가져올 수 있지만 권장하지 않습니다.