vs2012-键盘连续输入6个数字,如何知道每个数字输入的时间。

问题描述

键盘连续输入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

vs2012-键盘连续输入6个数字,如何知道每个数字输入的时间。的相关文章

js控制手机键盘只限输入删除数字?

问题描述 js控制手机键盘只限输入删除数字? js控制手机键盘只限输入删除数字? //数字验证 $rootScope.checkNum = function($event) { var k = $event.which; if ((k < 48 || k > 57) && k !== 8) { window.event.returnValue = false; } }; 可以切换到am,(,)等符号,求解 解决方案 系统键盘或者搜狗输入法之类的应该做不到吧~~ 1:去看看输入法

JavaScript使用键盘输入控制实现数字验证功能_javascript技巧

现在有一个需求如下图: 产品经理说Card Number只能让输入数字(中间的空格是格式自加的,也是用js实现的),有时候我脑海中出现了个声音,啥玩意,加个type=number不就行了,事实发现图样图森破了,先不说type=number后面会有个上下标(虽然用css可干掉),但是这个类型是支持科学输入法的,就是小数点和e这样的是可以输入的,于是乎只能用其他的方式了,后来想用检索到输入了非数字就干掉,但是这样还是能输入,想法被打回,于是乎最终采用了键盘输入控制的办法,其实很简单,代码如下: va

[华为机试练习题]43.在字符串中找出连续最长的数字串

题目 描述: 请一个在字符串中找出连续最长的数字串,并把这个串的长度返回:如果存在长度相同的连续数字串,返回最后一个连续数字串: 注意:数字串只需要是数字组成的就可以,并不要求顺序,比如数字串"1234"的长度就小于数字串"1359055",如果没有数字,则返回空字符串("")而不是NULL! 样例输入 abcd12345ed125ss123058789 abcd12345ss54761 样例输出 输出123058789,函数返回值9 输出547

java源码-我怎么才能让我连续输入多行数然后以-1结束输入

问题描述 我怎么才能让我连续输入多行数然后以-1结束输入 我想实现输入多行数字,然后输入-1结束开始输出是不是完全平方数,怎么改? 解决方案 Scanner sc = new Scanner(System.in); String[] input = new String[26]; int i = 0; do { input[i] = sc.next(); i++; } while (!input[i - 1] .equals("-1") ); in.close(); 解决方案二: wh

android-通话时接收对方的键盘按键输入

问题描述 通话时接收对方的键盘按键输入 app能否在双方通话的时候 接收对方的键盘输入? 比如打电话时对方按了个"2" 在我的app上能接收到吗? 对这方面不是很了解 解决方案 听起来很像是,打10086查询话费时,根据语音提示,选择相应的服务.不知道是这个意思不? 解决方案二: 如果单纯让对方接收是不行的,至少要有网络连接或者电话通信连接才行,10086那种方式应该是通信的东西,你可以去研究一下 解决方案三: 没意义,双方通讯有太多的手段,可以短信,为何要通过拨号传数字.如果是话务系

模拟键盘硬件输入汉字的问题

问题描述 模拟键盘硬件输入汉字,假如当前中文输入法是搜狗拼音输入法,我想模拟键盘输入"练习"两个汉字,于是模拟键盘输入了字母"lianxi",这时在输入法的汉字选择窗口中出现了"1联系2练习3怜惜4联席5连"等,那我怎么用程序判断"练习"应该按哪个数字键呢?没分了,谢谢大家! 解决方案 解决方案二:难道周六大家都在睡懒觉吗?

C++实例输入多行数字到数组_C 语言

 C++输入多行数字到数组 前天做某公司笔试题的时候,其输入格式是多行数字,每行以空格为分隔符,以换行符号为结束输入到多个数组.在JAVA中有相应的函数直接将一行拆成数组,感觉在C++中这中输入方式还是挺奇怪的,今天想出一种解决方式. 思路: 每次读入一个字符,判断是不是EOF,如果是的话跳出循环: 不是EOF将字符放回缓冲区: 读入换行符,说明一行结束,处理数组: 读入字符,如果不是空格,存入一个临时的字符串: 如果是空格,字符串转换成整数并压入数组: 注意: 对于连续的空格输入要进行判断,否

c++-怎么判断cin输入的是不是数字?

问题描述 怎么判断cin输入的是不是数字? 现在试着做一个后缀表达式的计算器,是需要用户自己输入数字和指令的,指令包括一些字母还有运算符号 因为打算用一个while(cin >> input),怎么能判断input是不是数字呢?input是string 因为头文件规定只能用iostream, string, cstdlib, cassert和cmath..... 麻烦帮忙解答一下.... 解决方案 用 isdigit判断是否为数字 解决方案二: isdigit是cctype的,规定不能用这个头

代码-数据结构预算法 要求统计自己输入文本的数字字母或者文字的个数 把学生独立完成部分填上

问题描述 数据结构预算法 要求统计自己输入文本的数字字母或者文字的个数 把学生独立完成部分填上 #include #include #include #include #include #define MAXSIZE 1000#define MAXLEN 20#define MAXNUM 16#define FALSE 0#define TRUE 1/*---------------堆结构的定义---------------*/typedef struct{char stores[MAXSIZE