1.软文推荐

2.软文推荐

3.软文推荐

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 30000

int 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:

# Makefile
cc=gcc

LDFLAGS=-lncurses

SRCS := $(wildcard *.c)
TARGET := $(SRCS:%.c=%)

$(TARGET):$(SRCS)
$(cc) $(LDFLAGS) $(SRCS) -o $(TARGET)

clean:
rm $(TARGET)

本文来源:www.lxlinux.net/6798.html,若引用不当,请联系修改。

相关文章 8

1

通过Howdy 为 Linux 增加人脸识别登录 45秒前

最近,深度操作系统刚刚发布了 20.05,它添加的 人脸识别功能[1] 引来了社区的关注。 抛开人脸识别的准确度、可靠性,以及是否实用等问...

2

Ubuntu系统安装Flash Player应用 3分钟前

Ubuntu系统中没有Flash Player但是我们有时会因为工作需要安Flash Player应用,本篇文章和大家分享一下Ubuntu系统安装Flash Player应用的教程。 软件...

3

禁止ip访问服务器(服务器禁止ip访问网站) 5分钟前

目录:1、java 如何禁止通过ip访问服务器,而只能通过域名访问?如果是通过ip访问,那么跳转到相应的提示页面,谢谢2、服务器如何禁止某...

6

Linux下常用的过滤操作 9分钟前

过滤器是一个程序,它从标准输入读取数据,在数据上执行操作,然后把结果写到标准输出。因此,它可以用来以强大的方式处理信息,例...

7

如何学好linux(如何学好linux系统) 11分钟前

目录:1、如何学习linux?2、怎么学习Linux?3、如何学习linux4、怎么学习linux5、怎样学好linux如何学习linux? 学习Linux步骤: 1、先了解了解基础...

8

C++基于Boost库实现命令行 13分钟前

Boost库中默认自带了一个功能强大的命令行参数解析器,以往我都是自己实现参数解析的,今天偶尔发现这个好东西,就来总结一下参数解析...