将时间戳复制到字符串

时间:2014-03-03 22:56:57

标签: c++

我想将时间戳复制到字符串 temp

cout << "Begin time: " << ctime(&timer);

成功打印出来:

开始时间:2014年3月3日星期一17:40:04

这是我想要的格式。

我目前的代码;然而,编译,但没有打印出来。

sprintf(temp, "Begin time: %d\n", ctime(&timer));
cout << temp << endl;

2 个答案:

答案 0 :(得分:5)

由于ctime()的返回值看起来像一个字符串,你应该写

sprintf(temp, "Begin time: %s\n", ctime(&timer));

注意%s表示字符串而不是%d表示十进制整数。

但是,为了确保不会超出缓冲区,最好使用ostringstreamstring

std::ostringstream strm;
strm << "Begin time: " << ctime(&timer) << "\n";
std::string temp(strm.str());
cout << temp << endl;

答案 1 :(得分:2)

您可以随时使用stringstream,并使用str()成员。

  stringstream ss;
  ss << "Begin time: " << ctime(&timer);
  cout << ss.str() << endl;