论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > C语言程序设计教程
Tag:新手,函数,指针,数据类型,对象,Turbo,入门,运算符,数组,结构,二级,,tc,游戏,试题,问答,编译,视频教程

一个简单的编辑器雏形

文章类别:C语言程序设计 | 发表日期:2008-9-24 14:37:28

注:本站文章

这里用到了屏幕开发库 curses 和键盘函数 keypad.

下面来看源程序:

#include<curses.h>

#define STARTX 1
#define STARTY 1

void initial()
{
initscr(); /* 初始化 */
cbreak(); /* 用来开启 cbreak 模式,cbreak 指除了DELETE,CTRL终端处理的非凡字符外,其余键盘输入的字符将立即被读取 */
nonl(); /* 格式控制 */
noecho();/* 并不立即显示字符 */
intrflush(stdscr,FALSE); /* 不读取串 */
keypad(stdscr,TRUE); /* 键盘响应 */
refresh(); /* 更新屏幕 */
}

int main()

{
int x=STARTX;
int y=STARTY;
int ch;

initial();

//box(stdscr,ACS_VLINE,ACS_HLINE);
/* 设置窗口形式 */
move(0,30);
/* 移动 0 行 30 列 */
printw("edit"); /* curses 的输出格式,类似 printf */
refresh();

move(x,y);


do{
ch=getch();
switch(ch){
case KEY_UP: /* 获取上键 */
if(y>1) --y;
move(y,x);
break;
case KEY_DOWN: /* 获取下键 */
++y;
break;

case KEY_RIGHT: /* 获取右键 */
++x;
break;
case KEY_LEFT: /* 获取左键 */
if(x>1) --x;
break;
case '\r': /* 获取回车键,并产生一个空行 */
++y;
x=1;
move(y,x);
insertln();
break;
case '\t': /* 获取 Tab 键 */
x+=4;
break;
case KEY_BACKSPACE: /* 获取删除键,删除字符 */
if(x>1) --x;
move(y,x);
addch(' ');
break;

case KEY_DC:
delch();
break;
case 126: /* 设置 ~ 键为退出键 */
endwin(); /* 结束 curses 模式 */
exit(0);
default:
insch(ch); /* 输出字符 */
x++;
break;
}
move(y,x);
}while(1);
}
}

编译程序:gcc -I/usr/include/ncurses edit.c -o edit -lncurses
程序可移动光标,输入,删除,增加代码就可成为功能强大的编辑器了.
上一篇:{技巧}C有C秘 人气:5500
下一篇:{技巧}Linux核心代码分析 人气:6863
视频教程列表
文章教程搜索
 
C语言程序设计推荐教程
C语言程序设计热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058