c++ - 如何将 put_time 放入变量中

标签 c++

我有一个函数作为

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 有关,不确定如何实现。 有什么帮助吗?

最佳答案

当您使用 stringstream捕获 localtime()的输出,您可以存储存储在 stringstream 中的字符串通过使用 .str() .

也就是说,

string myTime = transTime.str();
return myTime;

关于c++ - 如何将 put_time 放入变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28977585/

相关文章:

c++ - 为指向集合的指针重载开始/结束是个好主意吗

c++ - OpenCV - 获取 Rtrees 值不起作用 - CopyTo 类型不匹配

c++ - 将 std::vector 与 MPI_Gather 一起使用会崩溃,而 c 样式数组工作正常

c++ - winsock receive() 和accept() 的问题

c++ - DllMain 应该命名为另一个名称吗?

c++ - 事件可以跨进程吗?

c++ - MS VC++ 6 : Why return ! false 而不是 true?

c++ - 二维容器结构数组的构造函数

当存在移动和复制构造函数时,C++ 默认构造函数未使用 "using"继承

c++ - std::unordered_map 使用 Visual C++ 2008 的未声明标识符