需要使用TTF呈現文本在C++中打印出全局變量。因此,它會顯示這樣的:在呈現SDL_TTF文本時顯示變量C++
「總死亡人數:」 Varible這裏
得到這個它的工作原理,但它推手文字向左
SDL_Surface* textSurface = TTF_RenderText_Shaded(font, "Humans killed: " + totalKilled, foregroundColor, backgroundColor);
需要使用TTF呈現文本在C++中打印出全局變量。因此,它會顯示這樣的:在呈現SDL_TTF文本時顯示變量C++
「總死亡人數:」 Varible這裏
得到這個它的工作原理,但它推手文字向左
SDL_Surface* textSurface = TTF_RenderText_Shaded(font, "Humans killed: " + totalKilled, foregroundColor, backgroundColor);
"Humans killed: " + totalKilled
這是指針運算。它不轉換totalKilled
到std::string
,連接到"Humans killed: "
,並將結果轉換爲空終止的字符串。
試試這個:
#include <sstream>
#include <string>
template< typename T >
std::string ToString(const T& var)
{
std::ostringstream oss;
oss << var;
return var.str();
}
...
SDL_Surface* textSurface = TTF_RenderText_Shaded
(
font,
(std::string("Humans killed: ") + ToString(totalKilled)).c_str(),
foregroundColor,
backgroundColor
);
如果你願意使用升壓你可以使用lexical_cast<>
而不是ToString()
。
如果您使用的是C++ 11,則可以使用std :: to_string()。
std::string caption_str = "Humans killed: " + std::to_string(totalKilled)
SDL_Surface* textSurface = TTF_RenderText_Shaded(font, caption_str.c_str(), foregroundColor, backgroundColor);
你是什麼意思「向左推文字」?請詳細說明你想要達到的目標。 –
'totalkilled'的類型是什麼? 'int'? – genpfault