在UNIX下如何用C语言保存和恢复屏幕(2)
来源:asp之家 发布时间:2010-05-20 18:24:00
■ 游标的控制
move(y,x) 将游标移动至 x,y 的位置
getyx(win,y,x) 得到目前游标的位置
(请注意! 是 y,x 而不是 &y,&x )
■ 有关清除萤幕的函式
clear()
erase() 将整个萤幕清除
(请注意配合refresh() 使用)
■ 如何在萤幕上显示字元
echochar(ch) 显示某个字元
addch(ch) 显示某个字元
mvaddch(y,x,ch) 在(x,y) 上显示某个字元
相当於呼叫 move(y,x);addch(ch);
addstr(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, 从键盘读取一串字元
□例:
int ch;
char string1[80]; /* 请注意! 不可宣告为 char *string1; */
char string2[80];
echo(); /* 开启 echo 模式, 使输入立刻显示在萤幕上 */
ch=getch();
string1=getstr();
scanw("%s",string2);
mvprintw(10,10,"String1=%s",string1);
mvprintw(11,10,"String2=%s",string2);
■ 如何利用方向键
curses 将一些如方向键等特殊控制字元, 以 KEY_ 为开头定义在 curses.h
这个档案里头, 如 KEY_UP 即代表方向键的 " ↑ ". 但, 如果您想使用
curses.h 所为您定义的这些特殊键的话, 您就必须将 keypad 设定为
TRUE. 否则, 您就必须自己为所有的特殊键定义了.
curses.h 为一些特殊键的定义如下:
KEY_UP 0403 ↑
KEY_DOWN 0402 ↓
KEY_LEFT 0404 ←
KEY_RIGHT 0405 →
KEY_HOME 0406 Home key (upward+left arrow)
KEY_BACKSPACE 0407 backspace (unreliable)
KEY_F0 0410 Function keys.
KEY_F(n) (KEY_F0+(n)) Formula for f .
KEY_NPAGE 0522 Next page
KEY_PPAGE 0523 Previous page
以上仅列出笔者较常使用的一些控制键, 至於其他控制键的定义, 请自行参
阅 man curses (* 注三)
一并为您列出其他常用的一些特殊字元
[TAB] /t
[ENTER] /r
[ESC] 27
[BACKSPACE] 127
■ 如何改变萤幕显示字元的属性
为了使输出的萤幕画面更为生动美丽, 我们常须要在萤幕上做一些如反白,
闪烁等变化. curses 定义了一些特殊的属性, 透过这些定义, 我们也可以
在 curses 程式□控制萤幕的输出变化.
attron(mod) 开启属性
attroff(mod) 关闭属性
curses.h 里头定义了一些属性, 如:
A_UNDERLINE 加底线
A_REVERSE 反白
A_BLINK 闪烁
A_BOLD 高亮度
A_NORMAL 标准模式 (只能配合 attrset() 使用)
当使用 attron() 开启某一种特殊属性模式後, 接下来在萤幕的输出都会以
该种属性出现. 直到您呼叫 attroff() 将此模式关闭.
请注意, 当您欲 attron() 开启另一种属性时, 请记得利用 attroff()先关
闭原来的属性, 或直接以 attrset(A_NORMAL) 将所有特殊属性关闭.否则,
curses 会将两种属性做重叠处理.
□例:
attrset(A_NORMAL); /* 先将属性设定为正常模式 */
attron(A_UNDERLINE); /* 加底线 */
mvaddstr(9,10,"加底线"); /* 加底线输出一串字元 */
attroff(A_UNDERLINE); /* 关闭加底线模式, 恢复正常模式 */
attron(A_REVERSE); /* 开启反白模式 */
mvaddstr(10,10,"反白"); /* 输出一串反白字元 */
attroff(A_REVERSE); /* 关闭反白模式, 恢复正常模式 */
attron(A_BLINK); /* 开启闪烁模式 */
mvaddstr(11,10,"闪烁"); /* 输出一串闪烁字元 */
attroff(A_BLINK); /* 关闭闪烁模式, 恢复正常模式 */
attron(A_BOLD); /* 开启高亮度模式 */
mvaddstr(12,10,"高亮度"); /* 输出一串高亮度字元 */
attroff(A_BOLD); /* 关闭高亮度模式, 恢复正常模式 */


猜你喜欢
- 在互联网快速发展的同时,网络广告也在蓬勃地发展,呈现出了巨大的发展空间。据媒体规划与收购公司实力传播发表的数据显示,互联网广告今年的全球市场
- 1、网站主题和关键词 一般来说你的网站建立好关键词和主题内容就已经确定, 可以和他们匹配的广告就相对比较稳定。除非你是综合性站点, 那样可以
- 北京时间10月13日早间消息,据国外媒体今日报道,美国黑客乔治·霍兹(George Hotz)发布了一款名为Black
- 本文假定读者已经理解双机互备的HA方案的基本概念。1. 双机互备HA方案的基本步骤建立一个双机互备方案的基本步骤是:1. 确定基本参数(如I
- 我的师父黄裳@岳旭强曾经说过,“好的架构图充满美感”,一个架构好不好,从审美的角度就能看得出来。后来我看了很多系统的架构,发现这个言论基本成
- 虚拟机是非常方便的测试软件,我们可以用来做各种测试,不会对硬件造成伤害,为了能够更加方便的演示环境,便于做各种例子;而又能保证主机的快速运行
- 说明如下: 1. 在配置文件里设置: 打开httpd.conf编辑,将下列block如下编辑: httpd.conf <Directo
- 对于研究SEO(搜索引擎优化)的朋友来说,都喜欢研究收集整理一些SEO工具。有些SEO工具是查询性质的,也有一些黑帽性质的,秦爱在这里给出的
- LAMP 方案是一系列自由和开源软件的集合,包含了 Linux、Web 服务器 (Apache)、 数据库服务器 (MySQL / Mari
- 网易科技讯 5月24日消息,谷歌刚刚发布了Android 2.2版本操作系统,而根据国外媒体的报道,日前谷歌已经安排好了代的Android
- Yahoo推出的新搜索引擎机器人叫YahooSlurp。YahooSlurp跟GoogleBot一样,顺着每个HREF链接找到网站。它不会抓
- 做站也有一段时间了,总的来说,从开始建站到现在,一路的辛酸与快乐只有自己心里清楚,但是,走过来的站长之路也只是重复其它的站长的脚步而已,最近
- 继阿里巴巴集团与深圳签署协议、在深圳建国际总部和南方总部后,互联网最大的中文搜索引擎——百度也有意在
- 前言在运维和管理 Linux 服务器的时候,我们最常用的一个命令就是 netstat,我常用这个命令来查看当前服务器上有哪些进程正在侦听端口
- 前几天Centos8发布了,尽管他是8的第一个版本,那么今天我们就在VM12上面安装centOS8吧,8这个图形化界面我个人感觉有点丑&nb
- 无论你试图从即将坏掉的存储驱动器抢救数据,将归档备份到远程存储,还是在别处对活动分区制作一份完美副本,都要知道如何安全可靠地复制驱动器和文件
- 提供给需要将SS与DZ整合的站长,此方法在本地经过不下50次的测试,才最终成功整合。我是菜鸟,喜欢自己一个人瞎琢磨,但我没有学过这些语言,也
- 很多网络管理员都使用过windows系统的远程桌面,通过他可以远程控制一台服务器,就好象在本机操作一样。不过很多时候使用远程桌面时却在操作上
- 谷歌退出中国内地事件,远远没有画上句号,中国的搜索引擎市场正在掀起惊涛骇浪。虽然说谷歌只是退出内地,但对谷歌搜索还是影响很大。很多网民反映使
- Microsoft JET Database Engine (0x80004005) 未指定的错误的完美解决[转贴]一般情况下asp可以正常