【发布时间】:2017-12-08 23:51:22
【问题描述】:
我必须用 C++ 编写一个秒表类。我尝试这样做的方法是定义一个变量来保存圈数(名为“时间”)和一个bool,我用它来查看手表是启动还是停止。输入char 时,计时器应启动并设置time1。当输入另一个字符时,bool 切换到false 并设置time2,然后打印time2-time1。这应该是可重复的,直到输入“n”
我也不太确定我理解 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 */
【问题讨论】:
-
在 C++ 中你应该
#include <ctime>而不是 time.h。对于 POSIX 兼容系统,time_t的单位以秒为单位。 C++ 标准的唯一保证是它是在算术类型中定义的。 -
我不熟悉这些函数,但是当我向 Google 询问“time.h clock()”时the first suggestion 给出了答案。
-
显然是作业题。