0
#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”,有时会显示其他月份。

4

1 回答 1

2

您正在使用timer而不初始化它。在调用之前localtime,请尝试:

time(&timer);

此外,更简单的方法是:

ctime(&timer);
于 2013-03-07T06:59:01.100 回答