libtcod — C ++: как использовать% i в функции?

У меня есть маленький вопрос, возможно ли использовать% i в функции? Вот что мне нужно сделать. У меня есть функция обратного вызова:

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

и я хочу использовать это таким образом:

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

Как мне нужно реализовать это, или это может быть даже невозможно?
Я изо всех сил старался что-то сделать, но мне это не удалось. 🙁
Причина, по которой я хочу сделать это, состоит в том, что игрок мстит на следующий уровень, engine.level count получает ++, так что после повышения уровня игрока он может получить больше ЛОВКОСТИ на разных уровнях, а затем на уровне он может быть проинформирован о том, сколько он ловкости. мог достать.

0

Решение

Более вероятный boost::format (http://www.boost.org/doc/libs/1_54_0/libs/format/) следует делать то, что вы хотите. Это не будет такой точный синтаксис, но должен быть близким.

1

Другие решения

Если у вас есть 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();
}
0

По вопросам рекламы [email protected]