使用curses.h函数库实现字符动画


系统ubuntu9.10上没有curses.h文件,原来是系统没有安装libncuses5-dev,装了之后就有了。

sudo apt-get install libncurses5-dev

编译时需要加上 -lcurses 来指明需要使用到函数库,因为 curses.h 不在标准库函数中。

*************************************************************************************************************

curses 库用两个数据结构来映射终端屏幕,分别是stdscr和curscr。stdscr结构表示是一个逻辑屏幕,它的显示内容在终端屏幕上不一定能够立即看到,curscr对应的是实际看到的物理屏幕。

用curses()函数刷新逻辑屏幕;(这个函数我试了,好像不能用,怎么解释?)
用refresh()函数刷新物理屏幕。


常用到的curses.h库函数有:

initscr()       初始化屏幕

move(纵坐标,横坐标)          移动到某一位置(例如此位置可以作为后面在此处显示某句话)

addstr("@#$$#%")         在某一位置添加字符串@#$$#%

refresh()       刷新屏幕,一般紧随添加新到字符显示函数后,例如在addstr("@#$$#%")后

endwin()      关闭显示的屏幕



**********************************************************************************************
例如这样一段程序,实现的功能见程序注释:

/****cursestest.c****/

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

int main(int argc,char *argv[])
{
initscr();
/*显示粗体*/
move(10,20);
attron(A_BOLD);
addstr("Hello,");
refresh();
sleep(1);
/*粗体+下划线*/
attron(A_UNDERLINE);
addstr("world!");
refresh();
sleep(1);
/*下划线*/
move(11,20);
attroff(A_BOLD);
addstr("Hello,");
refresh();
sleep(1);
/*普通模式*/
attroff(A_UNDERLINE);
addstr("world!");
refresh();
sleep(1);
/*反白*/
move(12,20);
standout();
addstr("Hello,world!");
standend();
refresh();
sleep(1);

sleep(10);
endwin();
return 0;
}

大家可以编译执行一下,看看是什么效果~
gcc cursestest.c -o cursestest.o -lcurses

****************************************************************************************************
刚刚接触curses.h函数库,里面肯定还有很多好玩的东西~持续更新中~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值