#include<time.h>
#include<stdio.h>
int main(void)
{
time_t timer;
int i;
char mon[4];
char *ti=0;
ti=asctime(localtime(&timer));
ti=ti+4;
for(i=0;i<3;i++)
{
mon[i]=*ti++;
}
mon[3]='\0';
timer=time(NULL);
printf("The current time is %s\n",mon);
return 0;
}
嗨,有人可以告诉为什么asctime有时会返回错误的时间指针。我使用'mon'来存储asctime字符串中的月份,当在控制台上打印它时,它有时显示'Mar',有时显示其他月份。< / p>
答案 0 :(得分:2)
您正在使用timer
而未初始化它。在致电localtime
之前,请尝试:
time(&timer);
此外,更简单的方法是:
ctime(&timer);