一:编译方法
gcc [file.c] -lcurses

二:各类函数
1.initscr(): initscr() 是一般 curses 程式必须先呼叫的函数, 一但这个函数被呼叫之后, 系统将根据终端机的形态并启动 curses 模式.
2.endwin(): curses 通常以呼叫 endwin() 来结束程式. endwin() 可用来关闭curses 模式, 或是暂时的跳离 curses 模式. 最后再以wrefresh() doupdate() 来重返 curses 模式.
3.cbreak() and nocbreak(): 当 cbreak 模式被开启后, 除了 DELETE 或 CTRL 等仍被视为特殊控制字元外一切输入的字元将立刻被一一读取.当处于 nocbreak 模式时, 从键盘输入的字元将被储存在 buffer 里直到输入 RETURN或 NEWLINE.
4.nl() and nonl(): 用来决定当输入资料时, 按下 RETURN 键是否被对应为 NEWLINE 字元 ( 如 /n ). 而输出资料时, NEWLINE 字元是否被对应为 RETURN 和 LINDFEED系统预设是开启的.
5.echo() and noecho(): 此函式用来控制从键盘输入字元时是否将字元显示在终端机上.系统预设是开启的.
6.intrflush(win,bf): 呼叫 intrflush 时须传入两个值, win 为一 WINDOW 型态指标, 通常传入标准输出入萤幕 stdscr. bf 为 TRUE 或 FALSE. 当 bf 为 true 时, 当输入中断字元 ( 如 break) 时, 中断的反应将较为快速.但可能会造成萤幕的错乱.
7.keypad(win,bf): 呼叫 keypad 时须传入两个值, win 为一 WINDOW 型态指标, 通常传入标准输出入萤幕 stdscr. bf 为 TRUE 或 FALSE. 当开启 keypad后, 可以使用键盘上的一些特殊字元, 如上下左右>等方向键, curses 会将这些特殊字元转换成 8.curses.h 内定义的一些特殊键. 这些定义的特殊键通常以 KEY_ 开头.
9.refresh(): refresh() 为 curses 最常呼叫的一个函式. curses 为了使萤幕输出入达最佳化, 当您呼叫萤幕输出函式企图改变萤幕上的画面时, curses 并不会立刻对萤幕做改变, 而是等到refresh() 呼叫后, 才将刚才所做的变动一次完成. 其余的资料将维持不变. 以尽可能送最少的字元至萤幕上. 减少萤幕重绘的时间.如果是 initscr() 后第一次呼叫 refresh(), curses 将做清除萤幕的工作.

三:游标的控制:
1.move(x,y): 将游标移动至 x,y 的位置.
2.getyx(win,y,x): 得到目前游标的位置.

四:如何从键盘上读取字元:
1.getch(): 从键盘读取一个字元.
2.getstr(): 从键盘读取一串字元.
3.scanw(format,&arg1,&arg2…): 如同 scanf, 从键盘读取一串字元.

五:如何在萤幕上显示字元:
1.echochar(ch): 显示某个字元.
2.addch(ch): 显示某个字元.
3.mvaddch(y,x,ch): 在(x,y) 上显示某个字元. 相当于呼叫move(y,x);addch(ch);
4.addstr(str): 显示一串字串.
5.mvaddstr(y,x,str): 在(x,y) 上显示一串字串. 相当于呼叫move(y,x);addstr(str);
6.printw(format,str): 类似 printf() , 以一定的格式输出至萤幕.
7.mvprintw(y,x,format,str): 在(x,y) 位置上做 printw 的工作. 相当于呼叫move(y,x);printw(format,str);

六:方向键
KEY_UP 0403 ↑
KEY_DOWN 0402 ↓
KEY_LEFT 0404 ←
KEY_RIGHT 0405 →

curse库的使用总结相关推荐

  1. Unix/Linux下的Curse库开发指南——第六章 菜单开发及应用

    6.1菜单简介 6.1.1菜单概念     在第三章中我们曾经使用curses窗口创建了一个简单的菜单程序,从程序中可以看到菜单实际上是一系列选项的组合,我们一次可以选中一项或者多项,也可以使用方向键 ...

  2. python的windows出现问题_Windows下使用python库 curses遇到错误消息的解决方案

    在Windows系统下执行python应用时,有时会遇到错误信息: ModuleNotFoundError: No module named '_curses'. 然而查看Windows系统里pyth ...

  3. Windows下使用python库 curses遇到错误消息的解决方案

    在Windows系统下执行python应用时,有时会遇到错误信息: ModuleNotFoundError: No module named '_curses'. 然而查看Windows系统里pyth ...

  4. Windows下使用python库 curses遇到错误消息的解决方案 1

    在Windows系统下执行python应用时,有时会遇到错误信息: ModuleNotFoundError: No module named '_curses'. 然而查看Windows系统里pyth ...

  5. 【转】如何编译一个内核 - Ubuntu方式

    如何编译一个内核 - Ubuntu方式 2011-09-19 15:40 转载地址:http://hi.baidu.com/1101050240/blog/item/69e3d0d92f2b297dd ...

  6. 编译 Linux2.6 内核总结【ZT】

    在X86, Ubuntu 上编译Linux2.6内核,总结如下: 基础知识 在介绍如何编译内核之前, 需要对内核相关概念有一定的了解. 关于Linux kernel的介绍浩如烟海, 这里只介绍系统中相 ...

  7. 从I4GL迁移到EGL

    作者:金发华 Informix的I4GL一度非常流行,现今在很多行业中依然有许多I4GL的应用,但是I4GL在很长时间内没有做版本升级.不过好消息是IBM推出了EGL(Enterprise Gener ...

  8. 第7章 事件驱动编程:编写一个视频游戏

    1.操作系统面临的问题 内核将程序载入内存空间并维护每个程序在内存中所处的位置(空间管理).在内核的调度下,程序以时间片间隔的方式运行,同时内核也在特定的时刻运行特定的内部任务(时间管理,计时器).内 ...

  9. LWN:利用Org mode和iCalendar来管理自己的task!

    关注了就能看到更多这么棒的文章哦- Managing tasks with Org mode and iCalendar July 14, 2020 This article was contribu ...

最新文章

  1. 手机调试打开控制台方法vconsole
  2. ORACLE-WITH 子句详解
  3. 光谱 波长_【第三课】红外光谱仪及其联用技术
  4. TF-Lite极简参考-模型转换
  5. 使用qt制作License(原理)
  6. [AndroidO] [RK3399] -- CH341驱动移植
  7. python时域转频域_语音预处理(二):时域转频域
  8. 工业相机 - - 线阵相机
  9. 代码自动生成-宏带来的奇计淫巧
  10. 恶意点击软件测试简历,亲测百度竞价的恶意点击:60%广告费浪费
  11. PTA 7-10 字符转换 (15分)
  12. win10下WAMP Server安装
  13. 一些风力发电机组工作参数的安全运行范围
  14. win10电脑耳机没有声音 如何在不重启电脑情况下耳机重新有声音
  15. ansible模块临时命令
  16. java+springboot+ssm学生实习报告作业评分管理系统
  17. Java、JSP基于JAVAEE的食堂管理系统
  18. JAVA微信公众号开发之二维码的创建与获取
  19. 为什么世上没有免费午餐
  20. 【剑拔峨眉 团队裂变】蜜教育高端特训隆重拉开序幕

热门文章

  1. 基于nodejs+vue社区互助平台- vscode项目
  2. Qt(c++)调用python一直报错slot、hypot等
  3. mq5 EA模板及双均线交叉策略EAdemo
  4. 如何将python转成app_将python脚本转换为webapp的最简单方法是什么?
  5. proe常用c语言语句,带你轻松搞懂Proe条件语句
  6. 移动商务,还是短信商务?
  7. java奈奈老师2_【图片】奥尔三X作【新任女教师奈奈、同居俏佳人、同居俏女仆】攻略&结局【javagame吧】_百度贴吧...
  8. 怎么做抽奖活动_没有公众号怎么做刮刮乐链接
  9. 智安网络丨德勤发布2021九大技术趋势,零信任安全成为主流
  10. 惠而浦将斥资30亿美元收购艾默生电气旗下爱适易;高通和格芯签署一项长期制造协议 | 美通企业日报...