如何在C++中简洁地将当前时间添加到字符串?

Ann*_*nna 2 c++ string time

我想在代码的这一部分为文件名添加时间戳:

takeScreenshot( "screenshot.png" );
Run Code Online (Sandbox Code Playgroud)

但是,我发现的所有这样做的方式似乎都不必要地长而复杂.例如,创建一个新字符串,加载时间结构,将时间结构的元素转换为char数组并将其附加到字符串.

有一个简短的方法来实现这一目标吗?大多数其他语言都有一些简单的解决方

takeScreenshot( sprintf( "screenshot-%d.png", time() ) );
Run Code Online (Sandbox Code Playgroud)

C++中有一个吗?时间格式无关紧要.

Bat*_*eba 6

在引擎盖下连接一个字符串漫长而复杂的.

一个很好的方法是使用std::stringstream哪些重载<<进行连接:

std::stringstream ss;
ss << "screenshot-" << time() << ".png";
std::string s = ss.str();
Run Code Online (Sandbox Code Playgroud)

time()根据个人品味进行格式化