如何连接格式字符串?

Posted

技术标签:

【中文标题】如何连接格式字符串?【英文标题】:How to concatenate the format string? 【发布时间】:2020-06-11 07:46:03 【问题描述】:

我想连接两个字符串并将它们用作fmt 库的格式字符串。 显而易见的选择之一是将它们简单地连接为常规字符串,然后将它们传递到库中:

template<typename... Args>
inline void catfmt(std::string a, std::string b, const Args &... args) 
    std::string c = a+b;
    fmt::print(c, args...);

但是,c 将被丢弃。那么也许 fmt 提供了一种完全跳过它的方法?有没有办法在消息中放置一个字符串并告诉库它也应该被解析?比如:

template<typename... Args>
inline void catfmt(std::string a, std::string b, const Args &... args) 
    fmt::print(":sf:sf", a, b, args...);

:sf 的意思是:放置一个字符串并将其用作格式。

【问题讨论】:

【参考方案1】:

有没有办法在消息中放置一个字符串并告诉库它也应该被解析?

没有这样的方法。您必须使用 operator+ 连接它,这是对格式的嵌套调用

fmt::print(fmt::format("", a, b), args...);

或其他方法。

【讨论】:

以上是关于如何连接格式字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何在连接字符串中将 Access DB 从 ISO-8859-2 更改为 UTF-8?

如何使用JS在HTML中自定义字符串格式化

如何连接四舍五入的数字字符串python?

如何在 Javascript 连接的字符串上强制换行?

PostgreSQL 连接字符串/URL 的格式是啥?

06-01字符串格式化.md