问题描述
- 键盘连续输入6个数字,如何知道每个数字输入的时间。
-
问题如题,时间最好精确些(ms)或者求得每两个数字输入的间隔时间,如何用C++实现,最好具体点,看有人说用键盘hook,但是没怎么看懂,求大神莅临指导。
解决方案
#include
#include
#include
using namespace std;
class KeyTime{
public:
int KeyCode;//按下的键值
time_t* Time = new time_t();//按下键的时间
};
int main(int argc, char *argv[], char *envp[]){
KeyTime* c[6];//输入次数
//输入数字
cout << "请按键:";
for (int i = 0; i < 6; i++)
{
KeyTime* Item = new KeyTime();
Item->KeyCode = _getch();
time(Item->Time);
c[i] = Item;
cout << Item->KeyCode;
}
cout << endl;
//展示结果
for (int j = 0; j < 6; j++){
char buffer[32];
struct tm newtime;
localtime_s(&newtime, c[j]->Time);
strftime(buffer, 32, "%Y-%m-%d %H:%M:%S", &newtime);
cout << "按下键" << c[j]->KeyCode << "于" << buffer;
if (j > 0)
{
cout << "相差秒数" << difftime(*(c[j]->Time), *(c[j - 1]->Time));
}
cout << endl;
}
getchar();
return 0;
}
解决方案二:
数组,储存按下数字的时间
当前已使用的数组元素
当按下数字调用()
{
数组[当前已使用的数组元素]=获取当前时间
当前已使用的数组元素++
}
输出数组
{
temp=数组的后一个减前一个
}
时间: 2024-09-15 05:50:58