相关疑难解决方法(0)

如何在C中生成随机int?

是否有在C中生成随机int数的函数?或者我必须使用第三方库吗?

c random

527
推荐指数
11
解决办法
154万
查看次数

如何使用ANSI C测量时间(以毫秒为单位)?

仅使用ANSI C,有没有办法以毫秒或更多精度测量时间?我正在浏览time.h但我只发现了第二个精确功能.

c portability time-precision

118
推荐指数
6
解决办法
21万
查看次数

C中的高精度时间测量

我正在试图找出一种方法来编写一些代码,这些代码可以准确地计算出在BST上执行搜索所需的时间.目前即时使用时间和元素总数的顺序为10 ^ 5.它看起来像下面这样: -

clock_t begin, end;
begin = clock();
...
...
...
end = clock();
difference = (end-begin)/CLOCKS_PER_SECOND;
Run Code Online (Sandbox Code Playgroud)

但是,这并没有给我提供我正在寻找的精确度.我可以使用其他任何libc功能吗?

c linux

10
推荐指数
1
解决办法
8781
查看次数

如何在Linux中使用C++将日期和时间字符串精确到毫秒?

我希望能够将具有毫秒分辨率的本地时间和日期放入字符串中,如下所示:

YYYY-MM-DD hh:mm:ss.sss

这似乎是一件简单的事情,但我还没有找到一个简单的答案来解决这个问题.我用C++编写并且可以访问11个编译器,但是如果它更清晰则可以使用C解决方案.我在这里发现了一个解决方案,以毫秒为单位获取日期和时间,但是使用标准库肯定不会那么困难.我可能会继续推进这种类型的解决方案,但希望通过在SO上提出问题来增加知识库.

我知道这会起作用,但似乎又不必要地困难:

#include <sys/time.h>
#include <stdio.h>

int main(void)
{
    string sTimestamp;
    char acTimestamp[256];

    struct timeval tv;
    struct tm *tm;

    gettimeofday(&tv, NULL);

    tm = localtime(&tv.tv_sec);

    sprintf(acTimestamp, "%04d-%02d-%02d %02d:%02d:%02d.%03d\n",
            tm->tm_year + 1900,
            tm->tm_mon + 1,
            tm->tm_mday,
            tm->tm_hour,
            tm->tm_min,
            tm->tm_sec,
            (int) (tv.tv_usec / 1000)
        );

    sTimestamp = acTimestamp;

    cout << sTimestamp << endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

尝试用旧C语言查看C++和strftime的put_time.两者都只允许我达到我能说的最佳分辨率.你可以看到我到目前为止得到的两种方法.我想把它变成一个字符串

auto t = std::time(nullptr);
auto tm = *std::localtime(&t);
std::cout << std::put_time(&tm, "%Y-%m-%d %H:%M:%S") << std::endl;

time_t rawtime;
struct tm * timeinfo; …
Run Code Online (Sandbox Code Playgroud)

c++ linux time date

4
推荐指数
1
解决办法
2379
查看次数

标签 统计

c ×3

linux ×2

c++ ×1

date ×1

portability ×1

random ×1

time ×1

time-precision ×1