论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: 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:31

注:这是本站网友 hua 在非常论坛发布的,看完后我们非常感动,在这个网友身上我们看到了自由软件的精神,他在本站发布的编辑器雏形的基础上扩展了源代码,并加入了文件存储功能,本站把这篇文章在文章区发布出来,希望有更多有爱好的网友共同研究扩展这个还不完善的编辑器.

源程序没加注释,本站在扩展的部分加上了注释.
-----------------------------------------------------------

作者:hua

完成这个程序的时候,心里有些激动,但是在存档文件中的开头总是有乱码存在,我想可能是数组设置的问题,不过并不影响文件的存储,下面是我扩展的源代码:
edit.c:

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

#define STARTX 1
#define STARTY 1

void initial()
{
initscr();
cbreak();
nonl();
noecho();
intrflush(stdscr,FALSE);
keypad(stdscr,TRUE);
refresh();
}

int main(int argc,char *argv[])
{
int x=STARTX;
int y=STARTY;
int ch;
char name[200],eput,net[1]; /* 设置字符变量 */
FILE *fp; /* 设置文件指针 */

if(argc==1 || argc>2) {
printf("please input:./edit file\nexit:Esc\n");
}
}

/* 上面是判定输入情况的,当输入参数为 1 或大于 2 时,打印 "please input:./edit file\nexit:Esc\n" */

if(argc==2) {
fp=fopen(argv[1],"w"); /* 写文件 */
initial();

//box(stdscr,ACS_VLINE,ACS_HLINE);
move(0,30);
printw("edit:%s",argv[1]);
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':
x+=4;
break;
case KEY_BACKSPACE:
if(x>1) --x;
move(y,x);
addch(' ');
break;
case KEY_DC:
delch();
break;
case 27:
/* 当按 Esc 时,存储文件并退出程序 */
fwrite(&name,sizeof(name),1,fp);
endwin();
exit(0);
default:
insch(ch);
eput=ch;
/* 这里作者用了些技巧,将整型的变量附值给字符变量,在这应该理解为直接获取字符的 ASCII 码 */

sprintf(net,"%c",eput);
/* 将字符放入 net[1] 内 */

strcat(name,net);
/* 连接 name 和 net 的内容,并把内容放入 name 数组中 */

x++;
break;
}
move(y,x);
}while(1);
}
}

上面用的代码是在贵站非常文章上发表的编辑器雏型的基础上扩展的,其中结合从贵站学到的文件存取知识发展而来的,虽然漏洞很多,但是我相信它经过不停的改进,最终会成为一个出色的功能强大的编辑器.

同时想到一个人的能力有限,只有集合大家力量才能使功能更加的完善,所以在这儿把源代码贴出,希望各路好手共同完善这个程序.

也非常感谢非常空间,让我学到了很多的知识,谢谢!
上一篇:{技巧}编辑器的改进 人气:5604
下一篇:{技巧}cgic: 为C语言编写CGI的C函数库 人气:5717
视频教程列表
文章教程搜索
 
C语言程序设计推荐教程
C语言程序设计热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058