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_timeですstruct tm*。私の実際の目標は、システムの日付と時刻を char バッファーにコピーし、 によって返されるサイズを計算する方法localtimeです*ptr_time。これを行うsizeofと、値が 4 になります。

4

3 に答える 3

1

人間が読める時間を文字列に入れる方法を探している場合は、次の解決策があります。

#include <time.h>

char *buff = asctime(ptr_time);

のメモリは、およびbuffによって静的に割り当てられます。ctimeasctime

于 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

時間をcharバッファにフォーマットできます。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 tmはのいずれsizeof(struct tm)sizeof(*ptr_time)であり、ポインタが指すもののサイズを示します。

于 2012-11-25T10:48:45.523 に答える