gpt4 book ai didi

c++ - 如何使用 Ncurses 打印 (☞゚ヮ゚)☞?

转载 作者:太空狗 更新时间:2023-10-29 21:44:45 24 4
gpt4 key购买 nike

我想在 Ubuntu 中使用 C++ 的 Ncurses 库打印 (☞゚ヮ゚)☞。

首先,您只需拥有:

std::cout << "(☞゚ヮ゚)☞" << std::endl;

而且效果很好。

但是,当使用 Ncurses 进行打印时,我认为您需要使用 printw(char[])。在这种情况下,我尝试这样的事情:

std::string str = "(☞゚ヮ゚)☞";   // String
initscr(); // Start curses mode
printw(str.c_str()); // Print
getch(); // Wait for input
endwin(); // Exit curses mode

但它输出:

(�~X~^��~�~C���~)�~X~^

我原以为这可能是 c_str() 的错,但当我使用 std::cout 时,它也能正常工作。

如何使用 Ncurses 打印该文本?为什么它适用于 std::cout 而不适用于 Ncurses 的 printw(char[])

我编译使用

g++ Main.cpp -lncurses

在 64 位机器上。 Ubuntu(也是 64 位)在以 OSX 作为主机的 VirtualBox 中运行。


更新:

我被重定向到 https://stackoverflow.com/a/9927113/555690 .那里的解决方案似乎并没有解决我的问题 - 相反,这是现在的样子:

(M-b~X~^M-oM->~M-c~CM-.M-oM->~)M-b~X~^

最佳答案

我想我会发布这个作为答案。因此,Ubuntu 显然默认不附带支持 Unicode 的版本。所以你首先需要安装它

sudo apt-get install libncursesw5-dev

然后你就可以编译了

#include <iostream>
#include <string>
#include "locale.h"
#include "ncursesw/ncurses.h"
using namespace std;

int main()
{
setlocale(LC_ALL, "");
std::string str = "(☞゚ヮ゚)☞"; // String
initscr(); // Start curses mode
printw(str.c_str()); // Print
getch(); // Wait for input
endwin();
return 0;
}

它会顺利运行。

注意 #include "ncursesw/ncurses.h"

关于c++ - 如何使用 Ncurses 打印 (☞゚ヮ゚)☞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19373027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com