Tag: ncurses

NCurses刷新

我有一个小的ncurse程序我正在运行,但输出似乎没有显示,除非我在一个while循环中粘贴wrefresh() 。 是否有一些缓冲或某事? 我尝试了库中的其他refresh函数和fflush与stddout (我认为没有意义,但值得一试),但似乎没有任何工作。 第二个小问题:要使getch()无阻塞,我们需要调用nodelay(win,TRUE) ,对吧? void main() { initscr(); start_color(); init_pair(1,COLOR_YELLOW,COLOR_CYAN); WINDOW *win = newwin(10,10,1,1); wbkgd(win,COLOR_PAIR(1)); wprintw(win,”Hello, World.”); wrefresh(win); getch(); delwin(win); endwin(); } void main() { initscr(); start_color(); init_pair(1,COLOR_YELLOW,COLOR_CYAN); WINDOW *win = newwin(10,10,1,1); wbkgd(win,COLOR_PAIR(1)); wprintw(win,”Hello, World.”); wrefresh(win); getch(); delwin(win); endwin(); }

将Unicode / UTF8字符添加到C中的ncurses显示中

我正在尝试将wchar_t Unicode字符添加到C中的ncurses显示中。 我有一个数组: wchar_t characters[]={L’\uE030′, L’\uE029′}; // containing 2 thai letters, for example 之后我尝试将数组中的wchar_t添加到ncurses显示中: add_wch(characters[0]); 要提供更多信息,使用ASCII执行此操作正常,使用: char characters[]={‘A’, ‘B’}; // and later… addch(characters[0]); 要设置区域设置,我添加包含… #include // in main() setlocale(LC_CTYPE,”C-UTF-8″); ncurses包括: #include 编译: (编辑:添加了c99标准,用于支持通用字符名称。) gcc -o ncursesutf8 ncursesutf8.c -lm -lncurses -Wall -std=c99 我得到以下编译警告(当然可执行文件将失败): ncursesutf8.c:48: warning: implicit declaration of function ‘add_wch’ 我已经尝试过使用addch ,这似乎是宏用于wchar_t,但是当我这样做时,Unicode字符不会显示,而是显示为ASCII字符而不是。 有什么想法吗? 我正在使用OS X Snow […]

如何在不清除屏幕的情况下使用来自curses的getch?

我正在学习用C语言编程,并希望能够在我的代码运行时输入字符到终端而不按返回 。 我的程序工作,但是当我调用initscr() ,屏幕被清除 – 即使在调用filter() 。 filter的文档建议它应该禁用清除 – 但对我来说情况并非如此。 #include #include #include int main(void) { int ch; filter(); initscr(); cbreak(); noecho(); keypad(stdscr, TRUE); while((ch = getch()) != EOF); endwin(); return 0; } 为什么上面的代码仍然清晰的屏幕,以及可以做些什么来解决它? 如果有帮助,我正在使用Debian Lenny(稳定版)和gnome-terminal。

如何使用getch()ncurses获取Ctrl,Shift或Alt?

如何使用getch() ncurses获取Ctrl , Shift或Alt ? 使用ncurses,使用getch()获取Ctrl , Shift或Alt是不行的? 我想念那个男人的东西吗?

如何清除NCurses的特定线?

如何清除NCurses的特定线? 我需要在屏幕上擦除一行而不重绘整个内容。 我怎么做?

getch和putchar没有返回工作

我一直试图让getch在另一个程序中工作但没有成功。 所以我已经制作了最基本的程序,我可以使用getch ,就像我希望它在主程序中工作一样。 我已经研究过对noecho , cbreak , initscr和nodelay ,我也试过使用newscr()但没有成功。 我遇到的问题是,在我点击“输入”之前,字符不会被打印到屏幕上,因为它们应该在每个循环中被put屏幕上。 为什么会这样? 此外,光标不会返回到新行的屏幕左侧。 例如。 abc def ghi 我找到了答案,但又被难倒…… #include #include int main() { initscr();cbreak(); noecho();nodelay(stdscr,0); char c ; while((c=getch())!=EOF){ putchar(c);} return 0; }

未定义的引用`initscr’ncurses

我正在尝试编译我的项目,我使用lib ncurse。 编译器链接文件时我遇到了一些错误。 这是我在Makefile中的标志行: -W -Wall -Werror -Wextra -lncurses 我已经包含了ncurses.h 一些布局: prompt$> dpkg -S curses.h libslang2-dev:amd64: /usr/include/slcurses.h libncurses5-dev: /usr/include/ncurses.h libncurses5-dev: /usr/include/curses.h prompt$> dpkg -L libncurses5-dev | grep .so /usr/lib/x86_64-linux-gnu/libncurses.so /usr/lib/x86_64-linux-gnu/libcurses.so /usr/lib/x86_64-linux-gnu/libmenu.so /usr/lib/x86_64-linux-gnu/libform.so /usr/lib/x86_64-linux-gnu/libpanel.s 这是我的错误: gcc -W -Wall -Werror -Wextra -I./Includes/. -lncurses -o Sources/NCurses/ncurses_init.o -c Sources/NCurses/ncurses_init.c ./Sources/NCurses/ncurses_init.o: In function `ncruses_destroy’: ncurses_init.c:(.text+0x5): undefined reference to `endwin’ ./Sources/NCurses/ncurses_init.o: […]