C ++获取当前日期输出奇怪的结果

时间:2012-08-18 09:12:38

标签: c++

我的输出无法读取,我想要做的就是将日期年份分配为字符串。

如果我现在通过它们> tm_year + 1900,它可以工作,但如果我将它分配给一个字符串和cout以后,它会像这样输出。我如何更改我的代码,以便我可以将值分配给字符串而不会在cout上丢失引用。

终端:

Date is 

我的代码:

int main()
{
//get today date
string year,month,day;

/* Output 6 month frame for appointment booking*/
 time_t t = time(0);   // get time now
 struct tm * now = localtime( & t );

year = now->tm_year + 1900;
month = now->tm_mon + 1;
day = now->tm_mday;

cout << "Date is " << year << month << day << endl;

return 0;
}

2 个答案:

答案 0 :(得分:2)

你不能将整数分配给字符串(嗯,你可以,但它并不完全符合你的期望);你必须先转换它们:

std::string year = std::to_string(now->tm_year + 1900);

其他选项包括将数字存储为整数;你也可以打印整数:

int year = now->tm_year + 1900;

答案 1 :(得分:0)

您可以在代码文件中编写int而不是string