合并 std::wstring 和函数
Combine std::wstring and function
我正在用 SFML 2.1(这并不重要)在 C++ 中创建文本。
设置文本字符串如下所示:text.setString("something");
好的,但是因为我的游戏语言是波兰语,所以我必须输入一些字符,例如 ą、ż、ł、ś、ć 等,这些字符在我的游戏的 ASCII 编码中不是 'supported'。
我想到了这个解决方案:text.setString(L"śomęthińg");
但是,当您尝试从另一个函数中组合 wstring 和 string 时,问题就出现了。例如:
text.setString(L"Name: " + PlayerName() );
我试过将它转换为字符串或创建临时变量,但要么不起作用,要么它删除了这个 'special characters'...
完整示例:
std::string PlayerName()
{
std::string name = "John";
return name;
}
int main()
{
sf::Text hello;
hello.setString(L"Hello " + PlayerName() + L", how are you?");
//I need to use L" "
window.draw(hello);
}
有什么想法吗?
好的,我知道了!
正如@MooingDuck所说,SFML has it's own string type,在这类问题中非常强大。
我的做法:
std::string PlayerName()
{
std::string name = "John";
return name;
}
int main()
{
sf::String helloText = L"Hello ";
helloText += PlayerName();
helloText += L", how are you?";
sf::Text hello;
hello.setString(helloText);
window.draw(hello);
}
非常感谢您的帮助!
我正在用 SFML 2.1(这并不重要)在 C++ 中创建文本。
设置文本字符串如下所示:text.setString("something");
好的,但是因为我的游戏语言是波兰语,所以我必须输入一些字符,例如 ą、ż、ł、ś、ć 等,这些字符在我的游戏的 ASCII 编码中不是 'supported'。
我想到了这个解决方案:text.setString(L"śomęthińg");
但是,当您尝试从另一个函数中组合 wstring 和 string 时,问题就出现了。例如:
text.setString(L"Name: " + PlayerName() );
我试过将它转换为字符串或创建临时变量,但要么不起作用,要么它删除了这个 'special characters'...
完整示例:
std::string PlayerName()
{
std::string name = "John";
return name;
}
int main()
{
sf::Text hello;
hello.setString(L"Hello " + PlayerName() + L", how are you?");
//I need to use L" "
window.draw(hello);
}
有什么想法吗?
好的,我知道了!
正如@MooingDuck所说,SFML has it's own string type,在这类问题中非常强大。
我的做法:
std::string PlayerName()
{
std::string name = "John";
return name;
}
int main()
{
sf::String helloText = L"Hello ";
helloText += PlayerName();
helloText += L", how are you?";
sf::Text hello;
hello.setString(helloText);
window.draw(hello);
}
非常感谢您的帮助!