2

可能重复:
Cclock()函数只返回一个零

我运行以下代码来测试 clock() 函数的工作。我在 ubuntu 12.04 上工作。

#include <stdio.h>
#include <time.h>
#include <iostream>
using namespace std;


double diffclock(clock_t clock1,clock_t clock2)
{
double diffticks=clock1-clock2;
double diffms=(diffticks*10)/CLOCKS_PER_SEC;
return diffms;
}

int main()
{
string name;
int i;
clock_t begin=clock();
cout << "Hi what is your name? ";
getline(cin, name);
clock_t end=clock();
cout << "Time elapsed: " << double(diffclock(end,begin)) << " ms"<< endl;
return 0;
}

但无论我花多少时间写下我的名字,经过的时间总是显示为 0ms。

你能告诉我有什么问题吗?

4

2 回答 2

6

clock()返回自程序开始执行以来使用的滴答数。不需要(在这个特定的)示例中获取clock_t begin值。

尝试打印出beginend值,看看它们是什么。它们可能都是 0 或接近 0,因为等待用户输入不使用 CPU 时间。

无论哪种方式,我都推荐该time()功能,因为您不需要刻度精度。 http://www.cplusplus.com/reference/clibrary/ctime/time/

于 2012-08-15T20:05:00.737 回答
1

我认为您应该使用 time() 函数。它是这样工作的:http ://asust.in/007D 你只需调用它,它就会返回自 Unix 纪元(1970 年 1 月 1 日)以来的秒数。

clock() 函数返回自程序启动以来的时钟滴答数。这里:http ://asust.in/007E

于 2012-08-15T20:03:53.137 回答