Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19882484
  • 博文数量: 679
  • 博客积分: 10495
  • 博客等级: 上将
  • 技术积分: 9308
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-18 10:51
文章分类

全部博文(679)

文章存档

2012年(5)

2011年(38)

2010年(86)

2009年(145)

2008年(170)

2007年(165)

2006年(89)

分类: LINUX

2008-12-13 11:11:13

§6.2  Curses术语和概念

         Stdscr 和物理屏幕一样大小。

         Curses主要有2种数据结构:stdscr, curscrStdscrCurscr更重要,在curses函数产生输出的时候更新。即“standard screen.”。和stdout比较类似。是curses程序的默认输出窗口。Curscr类似,着重于当前时刻。Stdscr中的数据经refresh调用后显示。它比较stdscrCurscr的区别,刷新屏幕。

         Stdscr独立实现,不能直接访问。Curses程序从不使用curscr结构。输出的过程如下:

1. Use curses functions to update a logical screen.

2. Ask curses to update the physical screen with refresh.

         这样程序使用简单,curses更新屏幕效率高,但是网速慢的时候可能有影响。

         显示的字体一般都包含下划线和粗体。

         Curses需要创建和消灭一些临时数据结构,所有curses程序必须先初始化库再使用,使用完毕要恢复,通用以下函数调用实现:initscr and endwin

 

         实例:输出”Hello World!”

 

 

# cat screen1.c

/* A simple program to show basic use of the curses library */

 

#include

#include

#include

 

int main() {

    initscr();

 

/*  We move the cursor to the point (5,15) on the logical screen,

    print "Hello World" and refresh the actual screen.

    Lastly, we use the call sleep(2) to suspend the program for two seconds,

    so we can see the output before the program ends.  */

 

    move(5, 15);

    printw("%s", "Hello World");

    refresh();

 

    sleep(2);

 

    endwin();

    exit(EXIT_SUCCESS);

}

 

#gcc -o screen1 screen1.c -lncurses

 

阅读(4173) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~