`
skyishuman
  • 浏览: 58837 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux 下 curses库 安装 和使用

阅读更多

curses库是一组函数,程序员可以用它们来设置光标的位置和终端屏幕上显示的字符样式。curses库最初是由UCB的开发小组开发的。大部分控制终端屏幕的程序使用curses。曾经由一组简单的函数组成的库现在包括了许多复杂的特性。

Ubuntu下安装方法:

sudo apt-get install libncurses5-dev 

(如果发现找不到这个包,使用命令 sudo apt-get update 更新下包源)

curses的基本用法如下:

1. 包含头文件:curses.h

2. 编译时应加上链接语句-lcurses,如:gcc temp.c -o temp -lcurses

3. 重要的函数:

initscr():初始化curses库和ttty。(在开始curses编程之前,必须使用initscr()这个函数来开启curses模式)

endwin():关闭curses并重置tty。(结束curses编程时,最后调用的一个函数)

move(y,x): 将游标移动至 x,y 的位置. 
getyx(win,y,x): 得到目前游标的位置. (请注意! 是 y,x 而不是&y,&x ) 
clear() and erase(): 将整个萤幕清除. (请注意配合refresh() 使用)
echochar(ch): 显示某个字元. 
addch(ch): 在当前位置画字符ch
mvaddch(y,x,ch): 在(x,y) 上显示某个字元. 相当於呼叫move(y,x);addch(ch); 
addstr(str): 在当前位置画字符串str
mvaddstr(y,x,str): 在(x,y) 上显示一串字串. 相当於呼叫move(y,x);addstr(str); 
printw(format,str): 类似 printf() , 以一定的格式输出至萤幕. 
mvprintw(y,x,format,str): 在(x,y) 位置上做 printw 的工作. 相当於呼叫move(y,x);printw(format,str); 
getch(): 从键盘读取一个字元. (注意! 传回的是整数值) 
getstr(): 从键盘读取一串字元. 
scanw(format,&arg1,&arg2...): 如同 scanf, 从键盘读取一串字元. 
beep(): 发出一声哔声. 
box(win,ch1,ch2): 自动画方框

refresh():   使屏幕按照你的意图显示。比较工作屏幕和真实屏幕的差异,然后refresh通过终端驱动送出那些能使真实屏幕于工作屏幕一致的字符和控制码。(工作屏幕就像磁盘缓存,curses中的大部分的函数都只对它进行修改)

standout(): 启动standout模式(一般使屏幕发色)

standend(): 关闭standout模式

常用的初始化函数集合:

void initial()
{
      initscr();                                 //开启curses模式
      cbreak();                               //开启cbreak模式,除了 DELETE 或 CTRL 等仍被视为特殊控制字元外一切输入的字元将立刻被一一读取
      nonl();                                   //用来决定当输入资料时, 按下 RETURN 键是否被对应为 NEWLINE 字元
      noecho();                             //echo() and noecho(): 此函式用来控制从键盘输入字元时是否将字元显示在终端机上
      intrflush(stdscr,false);
      keypad(stdscr,true);          //当开启 keypad 後, 可以使用键盘上的一些特殊字元, 如上下左右>等方向键
      refresh();                              //将做清除萤幕的工作
}

#include <stdio.h>
#include <curses.h>

int main()
{
    initscr();    
    clear();
    move(10,20);
    addstr("hello,world");
    move(LINES-1,0);
    refresh();
    getch();
    endwin();
    return 0;
}

以上是curses库的一些简单的应用。现在学习要本着学以致用的目的。用多少就学多少,学过了就一定要学好!

分享到:
评论

相关推荐

    UNIX Linux下curses库开发指南

    UNIX Linux下curses库开发指南

    UNIX Linux下curses库开发指南.pdf 高清下载

    对于希望在UNIX/Linux环境下使用curses库进行TUI开发的程序员来说,以下是一些关键的开发步骤和注意事项: 1. **环境配置**:确保你的开发环境中已经安装了curses库及其开发头文件,通常可以通过包管理器如apt-get...

    《unixLinux下的Curses库开发指南》综合示例程序 -unixlinux develop guide with Curses libraryinstances program

    本指南将深入探讨Curses库在Unix/Linux系统中的开发实践,通过具体的示例程序帮助理解其核心概念和用法。 首先,Curses库的主要功能是管理屏幕上的文本输出,包括移动光标、清除屏幕、设置颜色、处理键盘输入等。...

    Linux下curses库开发篮球积分系统

    在Linux环境下,使用curses库开发篮球积分系统是一项有趣且实用的编程挑战。curses库是一种为终端用户界面提供低级处理的库,它允许程序员创建动态文本界面,非常适合用于控制台应用程序,如我们的篮球计分器。在这...

    UnixLinux下的curses库开发指南4-7

    ### Unix/Linux 下的 curses 库开发指南:第4章 鼠标支持 #### 4.1 鼠标支持简介 在 Unix/Linux 环境下,curses 库提供了一种统一的方法来处理不同终端环境下的文本界面编程。然而,并非所有终端都支持鼠标操作,...

    Linux_curses库使用[汇编].pdf

    Linux_curses库使用[汇编].pdf

    Linux Curses库使用说明

    根据提供的文件信息,我们可以推断出这是一本关于 Linux 下 NCurses 库使用的专业书籍《程序员的 NCurses 指南》(Programmer’s Guide to NCurses)的版权页及部分目录信息。以下是对该书可能涉及的重要知识点的...

    Linux系统字符终端界面的编程(1)——CURSES库简介.pdf

    "Linux系统字符终端界面的编程(1)——CURSES库简介" Linux 操作系统下的字符终端界面编程是非常重要的一方面,特别是在企业级和高端应用中。CURSES 库是一个基于 Linux 操作系统的字符终端界面编程库,它提供了一个...

    贪吃蛇 Linux curses编程实现

    一个较简单的贪吃蛇,要在linux的终端里实现。包含curses库。

    linux下基于socket和curses的双人弹球游戏

    在Linux操作系统中,开发一款基于socket和curses库的双人弹球游戏是一项技术性较强的挑战。本项目名为"linux下基于socket和curses的双人弹球游戏",主要涉及了网络编程、图形界面设计以及游戏逻辑实现等多个方面的...

    利用curses库实现弹球游戏

    在Linux环境下,curses库允许程序员创建具有复杂布局和动态交互的终端程序。这些特性使得curses成为开发诸如菜单、表单、对话框甚至是简单的游戏的理想选择。 #### 二、弹球游戏的设计原理与实现 ##### 2.1 游戏...

    利用curses库实现弹球游戏-源码

    本代码是基于linux下利用curses库实现弹球游戏的开发,功能相对完整,算法简单易懂。可以用作linux实践教学的实例。

    curses库使用指南

    **curses库使用指南** `curses`是一个用于创建基于终端的交互式应用程序的库,它在Unix和类Unix系统(如Linux和macOS)上广泛使用。`curses`库提供了一系列函数,使得程序员可以方便地管理屏幕输出,处理键盘输入,...

    linux下curses的编程实例

    linux下的屏幕开发库的应用实例,比较浅显易懂,经过本人调试成功。如果有兴趣的 人可以看看。

    python的curses库, win平台的各种whl包

    Python的curses库是用于在命令行环境中创建全屏交互式用户界面的模块,它源自UNIX系统的curses库。在Windows平台上,由于没有内置...正确选择并使用这些资源,可以极大地提升在Windows环境下使用curses库的效率和体验。

    curses库开发指南

    本书详细讲解了UNIX/Linux环境下的curses库开发技术,内容涉及窗口、面板、菜单、表单的操作。现在Unix都支持图形管理,UNIX下终端开发应用非常广泛,尤其在银行、邮政、电信以及电力等行业,本书是终端开发人员不...

    基于curses的简单弹球游戏

    综上所述,"基于curses的简单弹球游戏"项目是一个结合了curses库使用、Linux环境开发和游戏逻辑实现的综合实践案例,对于提升在命令行环境下进行交互式程序设计的能力非常有价值。通过阅读文档和研究源代码,学习者...

    linux下使用curses库实现滚屏、彩色打印等个性化屏幕输出

    【彩色打印】curses库提供了设置颜色的能力,通过`start_color()`初始化颜色,然后使用`init_pair()`定义颜色对,最后用`attron()`和`attroff()`控制颜色的开关。例如,`attron(A_REVERSE)`可以使文字反显,`attron...

    Linux下c语言的图像编程—curses

    【Linux下C语言的图像编程—curses】是关于在Linux环境下使用C语言进行终端界面交互的一种技术。Curses库最初由Berkeley大学的Bill Joy和Ken Arnold开发,旨在提高程序在不同终端上的兼容性。它通过termcap(或者在...

Global site tag (gtag.js) - Google Analytics