?C++自制计秒器
#include <iostream>
#include <time.h>
#include <windows.h>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
using namespace std;
time_t miao=0;
bool flag=0;
int cnt=0;
time_t tmp=0;
void _is_stop(char c) {
if(KEY_DOWN(c)) {
system("pause");
exit(0);
}
}
void show() {
miao=time(NULL);
if(miao>tmp) {
cnt++;
cout<<"秒数:"<<cnt<<endl;
}
tmp=miao;
}
int main(int argc, char** argv) {
cout<<"计秒器"<<endl;
cout<<"按s键停止!"<<endl;
for(;;) {
_is_stop('S');
show();
}
return 0;
}
前三行头文件不说,第四行:?
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
是个模板,背下来就可以了,用来检测键盘事件
?定义各种变量之后,定义_is_stop函数,检测键盘是否按下“s”,停止计秒。
if(KEY_DOWN(c)) {
system("pause");
exit(0);
}
接下来定义show函数,这里我用了一个“蠢”办法:
我在前面定义time_t类型的变量miao储存time(NULL)(1970-1-1至今的秒数)
然后定义tmp,由于miao和tmp变量顺序不同,miao先等于time(NULL),而tmp还没等于miao,导致tmp比miao小了,所以比较:如果miao比tmp多了(秒miao增加了),cnt(秒数)就增加了。
miao=time(NULL);
if(miao>tmp) {
cnt++;
cout<<"秒数:"<<cnt<<endl;
}
tmp=miao;
最后就是main,执行两个函数。
int main(int argc, char** argv) {
cout<<"计秒器"<<endl;
cout<<"按s键停止!"<<endl;
for(;;) {
_is_stop('S');
show();
}
return 0;
}
|