我正在尝试通过使用ncurses扩展字符来美化我的程序。但是,其中一些显示为问号:⍰。当我尝试诸如以下功能时会发生这种情况:
addch(ACS_S1);
addch(ACS_LANTERN);
addch(ACS_S3);
依此类推。任何帮助,将不胜感激。
#include <ncurses.h>
int main()
{
initscr();
addch(ACS_S1);
addch(ACS_S3);
addch(ACS_S7);
addch(ACS_S9);
addch(ACS_LANTERN);
refresh();
getch();
endwin();
return 0;
}
编辑:我忘记添加代码示例。所以这次我加了编辑:我正在使用Ubuntu来编译我的代码
您忘了tell ncurs的语言环境是什么(如果您未使用ncursesw进行编译/链接,仍然会有limitations):
该库使用调用程序已初始化的语言环境。通常用
完成setlocale
:
setlocale(LC_ALL, "");
如果未初始化语言环境,则库将假定字符可以按照ISO-8859-1进行打印,以与某些旧版程序配合使用。您应该初始化语言环境,而不要依赖于未设置语言环境的库。