clock.h
1 #ifndef _CLOCK_H_
2 #define _CLOCK_H_
3
4 struct Time{
5 int hour, minute, second;
6 };
7
8 void set(Time* p, int h, int m, int s);
9 void walk(Time* p);
10 void show(Time* p);
11 void run(Time* p);
12
13 #endif
clock.cc
#include <iostream>
#include <ctime>
#include "clock.h"
using namespace std;


void set(Time* p, int h, int m, int s)
{
p->hour=h;
p->minute=m;
p->second=s;
}


void walk(Time* p)
{
time_t t=time(NULL);
while(time(NULL)==t);

if(++p->second >= 60)
{
p->second=0;

if(++p->minute >= 60)
{
p->minute=0;
if(++p->hour>=24)
p->hour=0;
}
}
}


void show(Time* p)
{
cout<<"\r";
if(p->hour<10) cout<<0;
cout<<p->hour<<':';
if(p->minute<10) cout<<0;
cout<<p->minute<<':';
if(p->second<10) cout<<0;
cout<<p->second<<flush;
}


void run(Time* p)
{

for(; ;)
{
walk(p);
show(p);
}
}main.cc
#include "clock.h"


int main()
{
Time t;
set(&t, 0, 0, 0);
run(&t);
}程序运行时的CPU

使用率