这里我要说一下gotoxy(int x,int y)函数,它的作用是将控制台的光标定位到坐标(x,y)处,show函数是要放到死循环中的,所以这样始终将输出的时间打印到一个地方,实现了时间的更新(我是不是很聪明);setw(int x)是设置输出的字宽,setfill(char ch)设置了字符的填充。time函数返回的是秒数,t/60/60得到小时,t/60得到分钟,t%60得到秒数。
下面就是主函数了main()
int main()
{
Timer t;
char ch;
hidden();//隐藏光标
system("color 02");
gotoxy(35,12);
cout<<"00:00:00";
gotoxy(20,18);
cout<<"按a开始,按空格暂停,按s停止";
while(1)
{
if(kbhit())
{
ch = getch();
switch (ch)
{
case 'a':t.Start();break;
case 's':t.Stop();break;
case ' ':t.Pause();break;
default :break;
}
}
if(!t.isStop()&&!t.isPause())
{
t.show();
}
}
}
Timer t;定义一个计时器。hidden() ;是用来隐藏控制台光标的,不是必须的。
然后是进入死循环,kbhit()函数是检测是否有按键,如有按键返回非0值,没有按键返回0;用getch()获取按键,然后用
switch case分支结构处理不同的按键。
至此,我们的计时器设计完成!是不是感觉很简单啊!吐舌头
让我们看一下运行结果:
下面是本程序用到的头文件:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
#include <iomanip>
#include <windows.h>
下面是代码中用到的函数:
void gotoxy(int x,int y)
void gotoxy(int x, int y)//定位光标,x为行坐标,y为列坐标
{
COORD pos = {x,y};//(坐标 位置);
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); //得到标准处理(标准输出处理);
SetConsoleCursorPosition(hOut, pos);//设置控制台光标位置;
}
void hidden( )
void hidden()//隐藏光标
{
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cci;
GetConsoleCursorInfo(hOut,&cci);
cci.bVisible=0;//赋1为显示,赋0为隐藏
SetConsoleCursorInfo(hOut,&cci);
}
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者能带来一定的帮助,如果有疑问大家可以留言交流。
注:相关教程知识阅读请移步到C++教程频道。










