C ++:如何在函数中使用%i?

时间:2013-08-07 17:10:41

标签: c++ libtcod

我有一个小问题,是否可以在功能中使用%i?这是我需要做的。我有一个函数回调:

engine.gui->menu.addItem(Menu::AGILITY,"Agility (+1 defense)");

我希望以这种方式使用它:

engine.gui->menu.addItem(Menu::AGILITY,"Agility (%i defense)",engine.level);

我需要如何实现,或者甚至可能无法实现? 我尽力做点什么,但我没有管理它。 :( 我想要做到这一点的原因是玩家报复到下一​​个级别,engine.level计数得到++,所以然后玩家等级升级他可以在不同级别获得更多灵活性,然后练级他可以被告知他有多少敏捷性可以得到。

2 个答案:

答案 0 :(得分:1)

最有可能boost::formathttp://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();
}