c++ - clock() 函数总是返回 0

标签 c++ time clock

<分区>

Possible Duplicate:
The C clock() function just returns a zero

我运行了以下代码来测试 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。

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

最佳答案

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

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

无论哪种方式,我都推荐使用 time() 函数,因为您不需要tick 精度。 http://www.cplusplus.com/reference/clibrary/ctime/time/

关于c++ - clock() 函数总是返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11976342/

相关文章:

c++ - 如何基于循环迭代器选择函数

c++ - 我可以跨 DLL 边界传递 FILE 对象吗?

c++ - g++ std::visit 泄漏到全局命名空间?

php - 从 00 :00 - 23:55 for every 5 minutes 创建数组时间列表

python - 将 24 小时值转换为 HHMMSS - 时间

Verilog:如何将输入信号延迟一个时钟周期?

time - 两台远程计算机之间的(时钟)同步

java - 倒数计时器? (毫秒精度)?

c++ - 为什么openCV中的输入图像findContours()要转灰度?

r - 在 R 中总结日期和时间边界内的观察结果