我想将时间戳复制到字符串 temp 。
cout << "Begin time: " << ctime(&timer);
成功打印出来:
开始时间:2014年3月3日星期一17:40:04
这是我想要的格式。
我目前的代码;然而,编译,但没有打印出来。
sprintf(temp, "Begin time: %d\n", ctime(&timer));
cout << temp << endl;
答案 0 :(得分:5)
由于ctime()
的返回值看起来像一个字符串,你应该写
sprintf(temp, "Begin time: %s\n", ctime(&timer));
注意%s
表示字符串而不是%d
表示十进制整数。
但是,为了确保不会超出缓冲区,最好使用ostringstream
和string
。
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;