📄 00000001.htm
字号:
<BR> box(stdscr,'|','-'); /* 画方框 */ <BR> <BR> <BR> attron(A_REVERSE); /* 开启反白模式 */ <BR> <BR> mvaddstr(0,20,"Curses Program"); /* 在 (20,0) 处输出反白字元 */ <BR> <BR> attroff(A_REVERSE); /* 关闭反白模式 */ <BR> <BR> <BR> move(x,y); /* 将游标移至初始位置 */ <BR> <BR> <BR> do { /* 以无限回圈不断等待输入 */ <BR> <BR> ch=getch(); /* 等待自键盘输入字元 <BR> switch(ch) { /* 判断输入字元为何 */ <BR> <BR> <BR> case KEY_UP: --y; /* 判断是否"↑"键被按下 */ <BR> <BR> break; <BR> case KEY_DOWN: ++y; /* 判断是否"↓"键被按下 */ <BR> <BR> break; <BR> case KEY_RIGHT: ++x; /* 判断是否"→"键被按下 */ <BR> <BR> break; <BR> case KEY_LEFT: --x; /* 判断是否"←"键被按下 */ <BR> <BR> break; <BR> case '\r': /* 判断是否 ENTER 键被按下 */ <BR> <BR> ++y; <BR> x=0; <BR> break; <BR> case '\t': /* 判断是否 TAB 键被按下 */ <BR> <BR> x+=7; <BR> break; <BR> case 127: /* 判断是否 BACKSPACE 键被按下 */ <BR> <BR> mvaddch(y,--x,' ');/* delete 一个字元 */ <BR> <BR> break; <BR> <BR> case 27: endwin(); /* 判断是否[ESC]键被按下 */ <BR> <BR> exit(1); /* 结束 curses 模式 */ <BR> <BR> /* 结束此程式 */ <BR> <BR> <BR> default: <BR> addch(ch); /* 如果不是特殊字元, 将此字元印出 */ <BR> <BR> x++; <BR> break; <BR> } <BR> move(y,x); /* 移动游标至现在位置 */ <BR> <BR> } while (1); <BR> } <BR> <BR> void initial() /* 自定开启 curses 函式 */ <BR> <BR> { <BR> initscr(); <BR> cbreak(); <BR> nonl(); <BR> noecho(); <BR> intrflush(stdscr,FALSE); <BR> keypad(stdscr,TRUE); <BR> refresh(); <BR> } <BR> <BR> <BR> <BR> ■ 後记 <BR> <BR> 学完了上述的一些命令, 相不相信您已经可以写出一个漂亮的全萤幕编辑 <BR> 器了? 事实上, curses 提供的函式不下 200 个, 可是笔者认为, 一切再 <BR> 复杂的函式都可以用本文提到的一些组合变化而成, 学了太多的函式, 只 <BR> 是徒增自己困扰罢了. 当然, 如果您对其它函式有兴趣, 可以自行参阅 <BR> curses 说明档. ( 方法: % man curses ) 本文不过行抛砖引玉之效, 也 <BR> 希望未来能陆续出现更多同学自行创作的程式. <BR> <BR> * 任何疑问及建议, 欢迎 e-mail 至 <A HREF="mailto:ljh@CCCA.NCTU.edu.tw.">ljh@CCCA.NCTU.edu.tw.</A> 谢谢 ! * <BR> <BR> <BR> <BR> 注一: <BR> 请参考 /usr/share/lib/termcup <BR> /usr/share/lib/terminfo/s/sun <BR> <BR> 注二: <BR> 1.如果是 BSD 的版本, 需使用 <BR> cc [file.c] -lcurses -ltermcap 来完成 compile. <BR> 2.计中工作站不知何故将原来的 /usr/5bin/cc 更改为 /usr/5bin/cc.org <BR> 因此, 您若想在计中工作站 compile curses 程式.需以 /usr/5bin/cc.org <BR> 取代 /usr/5bin/cc , 否则 compile 可能发生错误. <BR> 3.较旧版的 curses 需同时引进 curses 和 termlib 这两个 library, <BR> 因此, 您必须使用 /usr/5bin/cc [file.c] -lcurses -ltermlib 来 compile. <BR> <BR> 注三: <BR> 根据笔者的经验, 上下左右方向键应可正常使用而不会发生问题, 但其它 <BR> 如 PgUp,PgDn,功能键,Home,End 等特殊键, 很容易因机器, 键盘不同而无 <BR> 法使用, 因此, 若您的程式须要在不同的机器上使用, 建议您只用方向键来 <BR> 控制, 其它的特殊键少用为妙. <BR> 至於 PgUp,PgDn 一些特殊键的控制方法, 由於较为复杂, 有兴趣的同学可参 <BR> 考 tin 原始程式 curses.c 内所使用的一些方法. <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -