现在,我想在 mac(mojava, 10.14.4) 的 c++ 中打印特殊字符,但这些字符在我的 mac 书中被破坏了。
我安装了 ncurses,例如 brew install ncurses
和 brew link ncurses
。它可以打印英文,例如 Hello World
,但也可以打印特殊字符,例如 ████████╗███████╗████████╗ ██████╗ ██╗███████╗
已损坏。
源代码
设置
initscr();
clear();
noecho();
cbreak();
curs_set(0);
工作
int startX = 0;
int startY = 0;
mvprintw(startY++, startX, "Hello World");
mvprintw(startY, startX, "████████╗███████╗████████╗██████╗ ██╗███████╗\n");
结果
Hello World
?~V~H?~V~H?~V~H?~V~H?~V~H?~V~H?~V~H?~V~H?~U~W?~V~H?~V~H?~V~H?~V~H?~V~H?~V~H?~V~H
?~U~W?~V~H?~V~H?~V~H?~V~H?~V~H?~V~H?~V~H?~V~H?~U~W?~V~H?~V~H?~V~H?~V~H?~V~H?~V~H
?~U~W ?~V~H?~V~H?~U~W?~V~H?~V~H?~V~H?~V~H?~V~H?~V~H?~V~H?~U~W
最佳答案
这似乎适用于 c++ 和 clang++ for mac(Mojave, 10.14.4)。我认为它使用的是maccurses而不是brew安装的ncurses。看起来它需要区域设置: setlocale(LC_ALL, "");
对我来说,这会清除屏幕并显示:
Hello World ████████╗███████╗████████╗██████╗██╗███████╗
编译cmd:
clang++ -Wall -Wextra -Weverything -lncurses *.cpp -o prg
main.cpp代码:
#include <curses.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "");
initscr(); /* Start curses mode */
clear();
noecho();
cbreak();
curs_set(0);
int startX = 0;
int startY = 0;
mvprintw(startY++, startX, "Hello World");
mvprintw(startY, startX, "████████╗███████╗████████╗██████╗ ██╗███████╗\n");
refresh(); /* Print it on the real screen */
getch(); /* Wait for user input */
endwin(); /* End curses mode */
return 0;
}
关于c++ - 如何使用 ncurses 库在 c++ for mac 中打印特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55623322/