0
#include <stdio.h>
#include <time.h>

int main ()
{
   time_t  time_raw_format;
   struct tm * ptr_time;
   char *buff;
   time ( &time_raw_format);
   ptr_time = localtime ( &time_raw_format );
}

如何将它复制到一个*buff,返回类型ptr_timestruct tm*,我的实际目标是将系统日期和时间复制到一个字符缓冲区以及如何计算返回的大小localtime*ptr_time如果我这样做是一个指针sizeof,我得到的值为 4

4

3 回答 3

1

如果您正在寻找如何将人类可读的时间放入字符串中,这里有一个解决方案:

#include <time.h>

char *buff = asctime(ptr_time);

的内存buffctime和静态分配asctime

于 2012-11-25T10:48:59.177 回答
0

如果理解正确,您想转换struct tm为字符串,请使用strftime()

char buf[200];
strftime(buf, sizeof(buf), "%c", ptr_time);
于 2012-11-25T10:48:35.920 回答
0

您可以将时间格式化为字符缓冲区strftime()

char buff[20];
strftime(buff, sizeof(buf), "%Y-%m-%d %H:%M", ptr_time);

ptr_time是一个指针,*ptr_time正在取消引用一个指针。sizeof(ptr_time)在 32 位系统上给出值 4. 的大小struct tmsizeof(struct tm)sizeof(*ptr_time),它给出了指针指向的任何内容的大小。

于 2012-11-25T10:48:45.523 回答