【发布时间】:2014-12-29 15:32:40
【问题描述】:
这是我的代码:
time_t tim=time(NULL); // acquire time information
struct tm * now=localtime(&tim);
char cyear[3], cmonth[2], cday[2], chour[2], cmin[2];
int test = 13;
sprintf(cyear, "%d", test);
sprintf(cmonth, "%d", now->tm_mon+1);
sprintf(cday, "%d", now->tm_mday);
sprintf(chour, "%d", now->tm_hour);
sprintf(cmin, "%d", now->tm_min);
printf("cyear is: %s\n",cyear);
printf("cmin is: %s\n",cmin);
我得到的输出是:
cyear is:
cmin is: 7
输出对于 cmonth 或 cday 也不起作用,但 chour 和 cmin 似乎给出了正确的输出。这是怎么回事?
【问题讨论】:
-
你没有为终止 NUL 字符留出空间。
-
避免使用
sprintf; 总是使用snprintf
标签: c string integer printf output