我有一个小问题,是否可以在功能中使用%i?这是我需要做的。我有一个函数回调:
engine.gui->menu.addItem(Menu::AGILITY,"Agility (+1 defense)");
我希望以这种方式使用它:
engine.gui->menu.addItem(Menu::AGILITY,"Agility (%i defense)",engine.level);
我需要如何实现,或者甚至可能无法实现? 我尽力做点什么,但我没有管理它。 :( 我想要做到这一点的原因是玩家报复到下一个级别,engine.level计数得到++,所以然后玩家等级升级他可以在不同级别获得更多灵活性,然后练级他可以被告知他有多少敏捷性可以得到。
答案 0 :(得分:1)
最有可能boost::format
(http://www.boost.org/doc/libs/1_54_0/libs/format/)应该做你想做的事。它不是那么精确的语法,但应该接近。
答案 1 :(得分:0)
如果你有C ++ 11,你可以这样做:
engine.gui->menu.addItem(
Menu::AGILITY,
"Agility (" + std::to_string( engine.level ) + " defense)" );
如果您没有C ++ 11,那么您应该拥有相应的
您的工具包中的std::to_string
。类似的东西:
template <typename T>
std::string
toString( T const& obj )
{
std::ostringstream result;
result << obj;
return result.str();
}