网站运营
位置:首页>> 网站运营>> 在UNIX下如何用C语言保存和恢复屏幕(2)

在UNIX下如何用C语言保存和恢复屏幕(2)

 来源:asp之家 发布时间:2010-05-20 18:24:00 

标签:unix,c语言,屏幕

■ 游标的控制

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); /* 关闭高亮度模式, 恢复正常模式 */

0
投稿

猜你喜欢

  • iis限制,流量限制与cpu限制的对比当前的虚拟主机主要分为三类流量限制:一:流量限制就是直接限制网络流量,这种限制通常是最严厉的一种流量限
  • 许多web浏览器都比IE更易于使用,并且不会那么容易就受到黑客和其它威胁的攻击。  大家似乎很难想起来还有许多可以替代IE的web
  • cpanel-wordpress博客换域名教程写yao1l.com转向yilongseo.com的过程,如果你的博客要换域名的不防可以看看,
  • 要提高网站收录量,无非就是三件事情。1.吸引搜索引擎蜘蛛来到你的网站;2.让搜索引擎顺利的爬行你的网页;3.让搜索引擎蜘蛛觉得你的网页有用,
  • 做为一个新站,没IP,没PR,没排名,新站做几天最多也就被几大搜索引擎收录,不过没什么排名。就像我昨天做的网站: * 站。这时候你应该怎么
  • 北京时间11月7日上午消息,据国外媒体报道,市场研究公司comScore Media Metrix今天发表报告称,9月份微软网站访问时长高于
  • Godaddy主机用户快来创建Google站长管理工具帐户吧,来为你提供一种你在创建你的共享托管账户时就可以用来立即登陆你的网站数据的站长管
  • 最近发现Namecheap搞了个1.99美元域名优惠活动,就有人问有没有将域名从Godaddy转移到Namecheap的图文教程,因为笔者一
  • 作为一个网站运营者,一定要对自己的网站有个非常明确的定位,要知道自己的目标群体是谁,它有什么样的喜好和浏览习惯。只有这样才能做出最准确的营销
  • 百度于昨天正式进入网络游戏市场,百度这次进入网游市场意欲如何?百度进军网游似乎来的太快了,业内不少人士认为百度进入网游市场前景不容乐观。百度
  • 一、网站推广目标线下推广是跟博客推广,论坛推广,搜索引擎推广等线上推广相反的一种推广方式,它更侧重于传统模式的而非网络模式的推广,注重实际生
  • 有许多新的搜索引擎(最新统计有100多个)都在开创一些搜索技术的创新。下面是一份17大搜索创新清单,我们认为,这些创新将来会是破坏性的(译者
  • 在比较复杂的网络环境中,用户需要通过不同的网关访问不同的网络服务器,比如笔记本电脑用户在家时使用ADSL,在单位使用局域网时就需要切换不同的
  • 如果要设置新建网站默认.NET版本,就在这里修改在确保你已经安装两个以上的.NET版本后如果看到ASP.NET选项卡的ASP.NET版本为灰
  • 近日,中国互联网络信息中心日前透露,“.中国”有望成为世界首个纯中文全球顶级域名。最新消息显示,“。中国”等非英文域名后缀的国际申请工作,将
  • 在用户正确完成以上各步骤以后,WebMail系统就会让用户恢复自己邮箱帐户的密码。密码恢复的方式又各有不同,一般有如下几种方式,安全程度各有
  • 生成广告代码以后,就要把代码粘贴到网页中了,不过网页中那么多位置,应该放在那里呢?就像下图,网页上有四个位置可以选择,哪个位置最好呢?根据研
  • 这个对于新手来说,也是比较困惑的问题,谈谈我对这个问题的认识。一:rpm包rpm包,分两种,binary rpm 跟 source rpmb
  • 关键词堆砌:众多关键字充斥于网页信息中就会形成关键字堆砌(Keyword stuffing)。这类网页看起来更像是一连串的关键字,而不像是别
  • 想查看最近有哪些好莱坞大片要上映吗?想要查看电影的主角及导演吗?想要浏览电影的剧情简介吗?想要观看高清的预告片来决定是否提前买首映票吗?那么
手机版 网站运营 asp之家 www.aspxhome.com