0

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

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

我想以这种方式使用它:

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

我需要如何实现它,或者这甚至是不可能的?我尽力去做某事,但我没有成功。:(我想这样做的原因是玩家复仇到下一个级别,engine.level计数得到++,所以玩家升级他可以在不同级别获得更多敏捷,然后升级他可以被告知有多少他能得到的敏捷。

4

2 回答 2

1

最有可能boost::formathttp://www.boost.org/doc/libs/1_54_0/libs/format/)应该做你想做的事。它不会是那种确切的语法,但应该很接近。

于 2013-08-07T17:22:56.273 回答
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();
}
于 2013-08-07T18:13:48.290 回答