gpt4 book ai didi

c++ - boost::format 形式的 c 字符串或 std::string

转载 作者:搜寻专家 更新时间:2023-10-31 01:15:37 28 4
gpt4 key购买 nike

如何使用字符串或 std::string 创建 boost::format 类型的格式化程序对象。
尝试使用以下未运行的代码。想要实现等同于以下代码的代码(语义上):

    format fobj("first-> %1% , second-> %2%");
std::stringstream s;
s<<fobj %1 %"%1%."; //so that I can use s.str() to create a boost object
// How to create fmt object HERE
ss<< fmt %"replacedtext";
cout<<s.str()<<endl;
cout<<ss.str();

示例案例:
s 应该是"first-> 1 , second-> %1%."
这样我就可以使用这个 s.str() 字符串创建另一个格式对象 fmt,我可以向其提供替换值。

大家有什么想法吗??

最佳答案

我不清楚你在做什么,boost::format文档是一个很好的起点,有许多清晰的示例展示了如何使用该类。

您可以创建格式化程序对象并通过不同的操作输入元素(不像 printf,其中所有参数都需要满足您传入的 va_arg)。

boost::format fmter("%2% %1%");
fmter % 36;
fmter % 77;

然后您可以从结果中获取一个字符串。

std::string s  = fmter.str();

注意有一个 number of exceptions可以扔。

如果您正在寻找可以动态创建格式字符串的东西,您可以通过多种方式做到这一点。

std::string strFormatString = "first-> %1% second-> %2%";
boost::format formatter( strFormatString.c_str() );
formatter % value1;
formatter % strFormatString.c_str();
boost::format secondFormatter( formatter.str() ); // etc etc etc

关于c++ - boost::format 形式的 c 字符串或 std::string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9923949/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com