Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ncurses中的上下半块字符_C_Terminal_Ncurses_Tui - Fatal编程技术网

ncurses中的上下半块字符

ncurses中的上下半块字符,c,terminal,ncurses,tui,C,Terminal,Ncurses,Tui,我正在用c构建一个ncurses程序,我想得到上半块和下半块字符(例如U+2580和U+2584)(▀) 对于小型终端上的图形(我通常使用双空格和倒双空格)。我尝试了许多不同的方法,但都不起作用。我还尝试了urxvt st和xterm,但完全没有成功。例如: #include <locale.h> #include <ncurses.h> int main (int argc, char *argv[]) { setlocale(LC_ALL, "");

我正在用c构建一个ncurses程序,我想得到上半块和下半块字符(例如U+2580和U+2584)(▀) 对于小型终端上的图形(我通常使用双空格和倒双空格)。我尝试了许多不同的方法,但都不起作用。我还尝试了urxvt st和xterm,但完全没有成功。例如:

#include <locale.h>
#include <ncurses.h>


int main (int argc, char *argv[]) {
    setlocale(LC_ALL, "");

    initscr();

    add_wch(L"\u2584");

    refresh();
    getch();
    endwin();
}
#包括
#包括
int main(int argc,char*argv[]){
setlocale(LC_ALL,“”);
initscr();
增加(L“\u2584”);
刷新();
getch();
endwin();
}

另外,如果终端中有其他显示图形的方式,比如我看到的一些小点,我会非常感兴趣

编辑:另外,当我将字符粘贴到终端时,它显示得很好,但当我使用printf时,它什么也不显示。这是为什么?

语句

add_wch(L"\u2584");

不适用于任何终端,因为参数的数据类型错误。需要
cchar\u t
数据类型,而您提供了一个
wchar\u t
(您将获得更好的结果)。

“此外,如果终端中有任何其他显示图形的方式,我将非常感兴趣。”=>你喜欢caca吗?是的,我喜欢那个库,但因为windows,我想要ncurses。我也计划使用libcaca。我正在制作一个小型模拟器,我有一个窗口,显示正在运行的汇编代码。如果libcaca可以返回一个2D表,然后我可以在ncurses中使用它,那就太棒了,这实际上是可能的,我将研究iTunes而不是ncurses(在您的
Makefile
或编译器include和library选项中),这样您就可以使用宽字符版本的ncurses了。@H32:您的语言环境是什么?换句话说,
env | grep-e'^LANG'-e'^LC'
在您的终端中输出了什么?让C库实现它支持Unicode(并使用UTF-8),它应该是例如
en_GB.utf8
,其中
.utf8
后缀是重要部分。addwstr只添加了一个空格,编译器无法找到cchar\t