此功能
char *uniqid()
{
static char uniqid[13];
time_t curTime = time(0);
struct tm *time = gmtime(&curTime);
//Year
uniqid[0] = '1';
uniqid[1] = '5';
uniqid[2] = '\n';
return uniqid;
}
在cout中调用时返回通常应该返回的“15”,但是当我这样做时
char *uniqid()
{
static char uniqid[13];
time_t curTime = time(0);
struct tm *time = gmtime(&curTime);
//Year
uniqid[0] = ((time->tm_year + 1900) % 100) / 10;
uniqid[1] = ((time->tm_year + 1900) % 100) % 10;
uniqid[2] = '\0';
return uniqid;
}
在cout中调用它会返回奇怪的图标。
答案 0 :(得分:0)
tm_year
属于int类型。您将int类型分配给char。这导致了奇怪的图标。您需要通过向其添加48(对于零的ASCII代码)将其转换为char。然后,整数将正确转换为char。