我们可以在两个输入之间获得时间吗?

时间:2014-02-07 16:53:42

标签: c++ input time cin

我在看这段代码时想知道:

#include<iostream>
#include<conio.h>

using namespace std;

int main(){

    int a,b;

    cout << "enter 1";
    cin  >> a;

    cout << "enter 2";
     cin >> b;

    getch();
    return 0;
}  

如果我们能够连续得到变量a和b的输入之间的时间差。

2 个答案:

答案 0 :(得分:6)

使用time()获取当前时间,difftime()计算差异。

#include <iostream>
#include <ctime>
#include <conio.h>
using namespace std;
int main()
{
    int a,b;
    cout<<"enter 1";
    cin>>a;
    time_t atime = time(NULL);
    cout<<"enter 2";
    cin>>b;
    time_t btime = time(NULL);
    cout << difftime(btime, atime) << " seconds passed\n";
    getch();
    return 0;
}  

答案 1 :(得分:2)

time(),difftime()的分辨率为1秒。

推荐的方法是使用chrono library(c ++ 11)

#include <chrono>

// ...

// take time 0
auto Time0= chrono::system_clock::now();

// do some work ...

// take time 1
auto Time1= chrono::system_clock::now();

// print the diff (in this example: in milliseconds)
auto Duration= chrono::duration_cast<chrono::milliseconds>(Time1 - Time0).count();
cout << Duration << endl;