结合 std::wstring 和函数

Combine std::wstring and function

本文关键字:函数 wstring 结合 std      更新时间:2023-10-16

我正在用 c++ 在 SFML 2.1 中创建文本(这并不重要)。

设置文本字符串如下所示:text.setString("something");

好的,但是因为我的游戏语言是波兰语,所以我必须输入一些字符,如ą,ż,ł,ś,ć等,这些字符在我的游戏的ASCII编码中不受"支持"。

Iv'e想出了这个解决方案:text.setString(L"śomęthińg");

但是当您尝试组合来自另一个函数的 wstring 和字符串时,会出现问题。例如:

text.setString(L"Name: " + PlayerName() );

我尝试将其转换为字符串或创建临时变量,但要么不起作用,要么它删除了这个"特殊字符"......

完整示例:

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有自己的字符串类型,在这类问题中非常强大。

我这样做的方式:

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);
}

非常感谢您的帮助!