Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

Gray-Ice

个人博客兼个人网站

在我苦苦寻找类似pacman更新包时输出#号的方法时,一位大佬告诉我使用ncurses库。
然后我就发现这玩意儿真好玩。
我参考了这位博主的博客: ncurses库常见用法
这里是文档NCURSES Programming HOWTO,不过是英文的,虽然我也想看中文文档,但是找不到就很气。
然后写了一个在屏幕上实时显示输入的字符的玩具。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <ncurses.h>

int main(void)
{
initscr(); // 初始化屏幕
raw();
noecho();
char input;
while((input = getchar())!= 'q' && input != EOF)
{
clear(); // 防止输入Ctrl+Z时显示^Z导致字符一直留在屏幕上
refresh(); // 刷新
mvprintw(0, 0, "%c", input); // 在指定位置输出字符
refresh();
}
clear();
endwin(); // 结束屏幕绘画
return 0;
}

不过我测试的时候getchar()输入Ctrl + D居然捕获不到EOF了,有点奇妙。而且我还另写了一个程序,证实了我的系统下EOF确实是Ctrl + D, 这可真是太怪了。

在编译上面的程序的时候,记得加上-lncurses,比如:

1
gcc test.c -lncurses

好了,那么本篇完(话说我为什么在学Socket的时候突然学起了ncurses?)

评论



愿火焰指引你