在UNIX下如何用C语言保存和恢复屏幕(3)
来源:asp之家 发布时间:2010-05-20 18:24:00
■ 其他常用的一些函式
beep() 发出一声哔声
box(win,ch1,ch2) 自动画方框 ch1: 画方框时垂直方向所用字元
ch2: 画方框时水平方向所用字元
example: box(stdscr,'|','-');
将以 | 及 - 围成一个方框
■ 应用完整□例
下面所举的例子, 即完全利用刚刚所介绍的含式来完成.这个程式可将从键
盘上读取的字元显示在萤幕上, 并且可以上下左右方向键来控制游标的位置
, 当按下 [ESC] 後, 程式即结束.
您有没有发现, 这不就是一个简单全萤幕编辑器的雏形吗?
#include <curses.h> /* 引进 curses.h , 并自动引进 stdio.h */
#define StartX 1 /* 决定游标初始位置 */
#define StartY 1
void initial();
main()
{
int x=StartX; /* 宣告 x,y 并设定其初值 */
int y=StartY;
int ch; /* 宣告 ch 为整数,配合 getch() 使用 */
initial(); /* 呼叫 initial(), 启动 curses 模式, */
/* 并完成其它设定 */
box(stdscr,'|','-'); /* 画方框 */
attron(A_REVERSE); /* 开启反白模式 */
mvaddstr(0,20,"Curses Program"); /* 在 (20,0) 处输出反白字元 */
attroff(A_REVERSE); /* 关闭反白模式 */
move(x,y); /* 将游标移至初始位置 */
do { /* 以无限回圈不断等待输入 */
ch=getch(); /* 等待自键盘输入字元
switch(ch) { /* 判断输入字元为何 */
case KEY_UP: --y; /* 判断是否"↑"键被按下 */
break;
case KEY_DOWN: ++y; /* 判断是否"↓"键被按下 */
break;
case KEY_RIGHT: ++x; /* 判断是否"→"键被按下 */
break;
case KEY_LEFT: --x; /* 判断是否"←"键被按下 */
break;
case '\r': /* 判断是否 ENTER 键被按下 */
++y;
x=0;
break;
case '\t': /* 判断是否 TAB 键被按下 */
x+=7;
break;
case 127: /* 判断是否 BACKSPACE 键被按下 */
mvaddch(y,--x,' ');/* delete 一个字元 */
break;
case 27: endwin(); /* 判断是否[ESC]键被按下 */
exit(1); /* 结束 curses 模式 */
/* 结束此程式 */
default:
addch(ch); /* 如果不是特殊字元, 将此字元印出 */
x++;
break;
}
move(y,x); /* 移动游标至现在位置 */
} while (1);
}
void initial() /* 自定开启 curses 函式 */
{
initscr();
cbreak();
nonl();
noecho();
intrflush(stdscr,FALSE);
keypad(stdscr,TRUE);
refresh();
}


猜你喜欢
- 有关VPN客户机的一个常见的错觉是认为它们是在VPN网络上连接到企业网络的工作站。这种工作站肯定是一种VPN客户机,但是,它并不是惟一的一种
- 破解目标:破解一经过加密的Asp木马登陆密码。由于木马里没有版本说明,具体也不知道这木马叫什么名。破解思路:两种,用加密后的密码替换密文和利
- 在Discuz!论坛中,有时会出现flash显示为代码,而不是被解析正确显示flas * 的情况。这种情况大多出现在从其他论坛系统转换过来的
- 下面的每一条戒律都将有效地影响代码的性能和可伸缩性。换句话说,尽可能不要照着戒律去做!下面,我将解释如何破坏他们以便提高性能和可伸缩性。1、
- 前言服务器系统环境为:CentOS 6.5(final);在服务器成功安装FFmpeg颇废了一番功夫,总结一下成功安装的过程,希望对大家有用
- 在login.asp中,接收用户输入的Userid和Password数据,并分别赋值给user和pwd,然后再用sql="sele
- 1,TCP/IP半开连接数限制是绝对不存在的2,Windows Server 2008的协议栈设计与Vista基本上相同,相对于X
- 这两天,互联网上出现了这样的观点:“垃圾信息是搜索不公正主因” 。谷歌中国认为,这是在搜索的“公正性”与“准确性”两个不同层次的事情间偷换概
- Vim编码的详细介绍Vim和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括 UCS-2、UTF-8 等流行的
- 读完本篇文章大家有必要看一下自己的友情链接,是不是已经被nofollow了。也许有些朋友问,什么是nofollow?简单的讲,就是虽然你的友
- 腾讯科技讯(编译/小贝)北京时间5月26日消息,据国外媒体报道,近日美国科技博客网站Gizmodo对谷歌工程副总裁安迪·鲁宾(Andy Ru
- 微软董事长比尔·盖茨(Bill Gates)将于本周五(6月27日,美国当地时间)正式退出公司日常管理工作,以把精力专注于慈善事业.在过去3
- 现在互联网上的内容五花八门无奇不有。有时您发表了一些不该发表的内容——比如一气之下发了篇博文,事后却后悔不已;又如无意间泄露了保密数据等。大
- 以下是一些来自专业机构研究结果的窍门,希望可以为改进你的网站设计提供些意见:1.对比图像,文字更具吸引力与你所认为的相反,在浏览一个网站的时
- CloudStack 安装及使用过程中常见问题汇总 &nb
- 10月27日,人人网宣布将通过“人人连接”技术实现与土豆网、互动百科、蚂蜂窝、大众点评网、爱卡汽车网
- 有GoDaddy主机用户问如何使用File Manager的幻灯片,其实很简单的,File Manager里的幻灯片特征在一个幻灯片里显示了
- 一、小猫TOMCAT其实很可爱2003年底,我换公司了,同样也换了WEBAPP,TOMCAT出现在我的面前(以前使用weblogic),我有
- 7月28日消息,有网游爆料称QQ最新版 2010SP1(版本号1760)有巨大漏洞,发送代码之后,打开聊天记录就可以执行。TechWeb从
- 微软今天凌晨发布了2009年10月份的13个月度安全补丁,一方面创下了数量上的历史记录,另一方面还首次影响到了月底才开始正式发售的Windo