from:点击打开链接
clock.h
#ifndef _CLOCK_H_
#define _CLOCK_H_
struct Time{
int hour, minute, second;
};
void set(Time* p, int h, int m, int s);
void walk(Time* p);
void show(Time* p);
void run(Time* p);
#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);
}