gpt4 book ai didi

c++ - 将时间(以秒为单位)从大纪元转换为一年中的某一天?

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

我有一个充满数据的文件,其中一列是从大纪元算起的秒数。作为引用,示例值如下所示:

1498493536984926976

我需要将其转换为一年中的某一天。到目前为止我所拥有的是这段代码,它使用 this reference将日期转换为正常的可读结构,然后 strftime 从结构中提取一年中的某一天:

time_t rawtime = stol(exploded_line[2]);
std::cout << rawtime << std::endl;
struct tm date;
date = *localtime( &rawtime );
char *buffer;
std::cout << 2 << std::endl;
strftime (buffer,sizeof(buffer),"%j",&date);

但是,strftime 行上的这段代码SegFaults!我不知道是什么原因造成的。我尝试将 buffer 初始化为

char buffer[80];

和各种其他声明,但似乎没有任何效果。我也试过完全放弃缓冲区,只使用 std::string;那也没有用。

此外,我并不偏爱这种方法。如果其他人有更好的方法从 Epoch 时间获取一年中的某一天,我将完全实现它。

任何帮助将不胜感激!

最佳答案

这些行是你的问题:

char *buffer;

strftime (buffer,sizeof(buffer),"%j",&date);

您已经分配了一个 char * 但它没有指向任何东西。它只是一个随机值,因此您将一个野指针传递给 strftime()。此外,sizeof(buffer) 将是指针的大小(4 或 8 个字节,具体取决于您的体系结构),而不是缓冲区应该指向的数组的大小。

char * buffer 更改为 char buffer[32]; 或类似的东西。

关于c++ - 将时间(以秒为单位)从大纪元转换为一年中的某一天?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44956621/

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