千家信息网

Linux ncurses怎么用

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇"Linux ncurses怎么用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"
千家信息网最后更新 2025年02月01日Linux ncurses怎么用

这篇"Linux ncurses怎么用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Linux ncurses怎么用"文章吧。

ncurses(new curses)是一套编程库,它提供了一系列的函数以便使用者调用它们去生成基于文本的用户界面。 ncurses名字中的n意味着"new",因为它是curses的自由软件版本。由于AT&T"臭名昭著"的版权政策,人们不得不在后来用ncurses去代替它。

需要在ubuntu系统上安装库文件,支持ncurses:

apt-get install libncurses5-dev

initscr()函数:

initscr()用于初始化ncurses数据结构并读取正确的terminfo文件。内存将被分配。如果发生错误,initscr将返回ERR,否则将返回指针。此外,屏幕将被删除并初始化。

getyx() 函数:

getyx() 函数可以用来取得当前光标的位置。并把它存储在传递给它的两个变量中。

mvprintw()函数:

在指定的坐标输出

refresh()函数:

更新终端屏幕

endwin()函数:

endwin()将清除ncurses中所有已分配的资源,并将tty模式恢复为调用initscr()之前的状态 。必须在ncurses库中的任何其他函数之前调用它,并且必须在程序退出之前调用endwin()。当您想要输出到多个终端时,可以使用 newterm(...)而不是initscr()。

下面的代码可以实现一个模拟的"球"在屏幕上来回反弹。 代码参考: [https://www.viget.com/articles/game-programming-in-c-with-the-ncurses-library/]

源程序:

#include #include #define DELAY 30000int main(int argc, char *argv[]){int x = 0;int y = 0;int max_x = 0,max_y = 0;int next_x = 0;int direction = 1;initscr(); /* 初始化屏幕 */noecho(); /* 屏幕上不返回任何按键 */curs_set(FALSE); /* 不显示光标 */ /* getmaxyx(stdscr, max_y, max_x);/* 获取屏幕尺寸 */mvprintw(5, 5, "Hello, world!");refresh(); /* 更新显示器 */sleep(1);while(1) {  getmaxyx(stdscr, max_y, max_x);/* 获取屏幕尺寸 */  clear(); /* 清屏 */  mvprintw(y, x, "O");  refresh();   usleep(DELAY);   next_x = x + direction;   if(next_x >= max_x || next_x else  {   x = x + direction;  } }endwin();  /* 恢复终端 */}

Makefile:

# Makefilecc=gccLDFLAGS=-lncursesSRCS := $(wildcard *.c)TARGET := $(SRCS:%.c=%)$(TARGET):$(SRCS)$(cc) $(LDFLAGS) $(SRCS) -o $(TARGET)clean:rm $(TARGET)

以上就是关于"Linux ncurses怎么用"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

0