2

由于某种原因 difftime 只返回整数。我的代码很简单。

#include <time.h>

int main()
{
    time_t test = time(NULL);
    while (1)
    {
        std::cout << difftime(time(NULL), test) << std::endl;
    }
}

我的输出看起来像

0...
1...
2...
3...

difftime 不应该返回双打吗?

4

3 回答 3

4

该函数time()返回最接近的秒,并difftime()返回它们的差。任何整数减去一个整数基本上都是一个整数(但它以双精度形式返回)。

顺便说一句,为了更准确的计时器:

time_t test = clock();
while (1)
{
    std::cout << float(clock() - test) / CLOCKS_PER_SEC << std::endl;
}
于 2015-07-04T01:56:04.197 回答
1

这与 time() 或 difftime() 无关。它纯粹是c ++中的cout。

请参阅此处:如何使用 cout 以全精度打印双精度值?

于 2015-11-04T16:20:46.300 回答
-1
int main()
{
    time_t o_test, f_test;
    time(&o_test);
    while (1)
    {
        time(&f_test);
        std::cout << difftime(f_test, o_test) << std::endl;
    }
}
于 2015-07-04T02:06:18.657 回答