c++ - 结合 std::wstring 和函数

标签 c++ string ascii sfml wstring

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

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

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

我想到了这个解决方案:text.setString(L"śomęthińg");

但是当您尝试从另一个函数中组合 wstring 和 string 时,问题就出现了。例如:

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

非常感谢您的帮助!

关于c++ - 结合 std::wstring 和函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28158148/

相关文章:

c++ - 根据用户输入用字母填充 vector ,并将开始和结束放在四肢上

c - 在C中将一个字符串包含到另一个字符串中

string - 有没有办法在 CMake 中将字符串(ASCII)转换为十六进制

c++ - 如何从 MySQL Connector/C++ 获取 native C API 连接结构?

c++ - C++ 中的智能指针入门

c++ - DLL 函数从参数获取错误值

javascript - JS : how to convert a string to JS Object (**NOT** to JSON)?

java - 从java中的字符串中删除重复值

c++ - 在 C++ 中解析设备文件的 ASCII 输出

python - python中如何不自动将byte转换为ascii