我正在尝试编写一段代码,让Lenny跳跃,但Lenny的表情是这样的:( ͡° ͜ʖ ͡°)
当我编译并运行该代码(g++ -o Lenny main.cpp)时,输出结果为“( ͡° �~\�~V ͡°)”。有没有办法让它显示为“( ͡° ͜ʖ ͡°)”?
我正在尝试编写一段代码,让Lenny跳跃,但Lenny的表情是这样的:( ͡° ͜ʖ ͡°)
当我编译并运行该代码(g++ -o Lenny main.cpp)时,输出结果为“( ͡° �~\�~V ͡°)”。有没有办法让它显示为“( ͡° ͜ʖ ͡°)”?
Linux拥有良好的Unicode支持,如果你只是输出内容,就不需要任何特殊的库:
#include <iostream>
int main()
{
std::cout << "( ͡° ͜ʖ ͡°)\n";
}
或者,您可以不依赖于Linux内置的UTF-8,而是明确指出它:
#include <iostream>
#include <locale>
int main()
{
std::locale::global(std::locale("en_US.utf8"));
std::wcout.imbue(std::locale());
std::wcout << L"( ͡° ͜ʖ ͡°)\n";
}
编辑:根据您在评论中提供的代码,您的问题实际上是关于ncurses库I/O,而不是关于C++。为了使您的程序按预期工作,请执行以下操作:
main()
开头添加一行setlocale(LC_ALL, "en_US.utf8");
(并相应地添加#include <clocale>
)-lncurses
,请将您的链接行更改为使用-lncursesw
。