实现一个电子时钟类,其构造函数接受当前系统时间,以秒为单位持续运行
#include#include // linux下使用sleep函数需要引用这个头文件 #include // 流格式控制符---使用setw函数 using namespace std; class Clock { public: Clock(time_t now) { tm *local = localtime(&now); m_hour = local->tm_hour; m_min = local->tm_min; m_sec = local->tm_sec; } void run(void) { for (;;) { show(); tick(); } } private: void show(void) { cout << 'r' << setfill('0') // 不到两位填0 << setw(2) << m_hour << ":" // 设置2位域宽,防止出现最后的秒数没有覆盖的情况 << setw(2) << m_min << ":" << setw(2) << m_sec << flush; } void tick(void) { sleep(1); if (++m_sec == 60) { m_sec = 0; if (++m_min == 60) { m_min = 0; if (++m_hour = 24) { m_hour = 0; } } } } int m_hour; int m_min; int m_sec; }; int main(void) { Clock clock(time(NULL)); // 返回time_t类型变量,即1970年最开始的那个时间 clock.run(); return 0; }



