我有一个功能
transTime()
{
time_t const now_c = time(NULL);
cout << put_time(localtime(&now_c), "%a %d %b %Y - %I:%M:%S%p");
}
我试图将返回的值保存到变量中,以便我可以执行类似
的操作string myTime = put_time(localtime(&now_c), "%a %d %b %Y - %I:%M:%S%p");
我需要为两个不同的插入使用相同的myTime实例。
编辑/更新:
使用stringstream后,
string transTime()
{
stringstream transTime;
time_t const now_c = time(NULL);
transTime << put_time(localtime(&now_c), "%a %d %b %Y - %I:%M:%S%p");
string myTime = transTime.str();
//transTime >> myTime;
return myTime;
}
当我使用调用函数时,我会单独Tue
,而不是完整的日期和时间。
很可能与getline有关,不知道如何实现。
有什么帮助吗?
答案 0 :(得分:2)
当您使用stringstream
捕获localtime()
的输出时,您可以使用stringstream
存储.str()
中存储的字符串。
即,
string myTime = transTime.str();
return myTime;
答案 1 :(得分:1)
首先,您需要使用大多数(如果不是全部)编译器标准库中包含的tm结构,然后您可以将'tm'对象中的数据传递给字符串:
string transTime()
{
time_t rawtime;
struct tm * timeContext;
string temp;
stringstream textStream;
time(&rawtime);
timeContext = localtime(&rawtime);
textStream << asctime(timeContext);
temp = textStream.str();
return temp;
}