gpt4 book ai didi

c++ - 将 long int 转换为 const time_t

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:18:07 28 4
gpt4 key购买 nike

我有变量 tmit:long tmit;。我在这段代码中出错:

printf("Time: %s",ctime(&tmit));

错误说:无法将参数“1”的“long int*”转换为“const time_t* {aka const long long int*}”到“char* ctime(const time_t*)”我的问题是,如果我想查看日期,如何在不丢失任何有关时间的信息的情况下将 long 转换为 time_t 或如何更改此代码。我正在研究这个 answer ,但我得到了错误。

最佳答案

一般情况下,您不能这样做,因为std::time_t 之间不需要有任何合理的联系。和一个像 long 这样的整数.

在您的特定系统上,std::time_tlong long , 所以你可以做

std::time_t temp = tmit;

然后使用 temp的地址。请注意,这不需要跨编译器或编译器版本可移植(尽管我不希望后者中断)。

值得检查tmit 中是否保存了任何内容被 ctime 等函数解释以一种明智的方式,因为你没有告诉我们那是从哪里来的。

取决于这个tmit已生成,使用 std::time_t tmit 也可能是个好主意而不是 long tmit从一开始就完全消除了这个转换问题。

如果您不必使用旧的 C 风格时间工具,请查看 C++11 <chrono> 标题。

关于c++ - 将 long int 转换为 const time_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36576285/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com