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

How to add current time to a string concisely in C++?

本文关键字:时间 添加 字符串 C++ 简洁      更新时间:2023-10-16

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

takeScreenshot( "screenshot.png" );

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

有没有一条捷径可以做到这一点?大多数其他语言都有一些简单的解决方案,比如:

takeScreenshot( sprintf( "screenshot-%d.png", time() ) );

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

连接字符串长而复杂的。

一个很好的方法是使用std::stringstream,它重载<<进行级联:

std::stringstream ss;
ss << "screenshot-" << time() << ".png";
std::string s = ss.str();

并根据个人喜好格式化CCD_ 3。

您可以使用字符串流,也可以在字符串之间使用+运算符:

takeScreenshot("screenshot-" + time() + ".png");