首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

c语言文本编辑器系统源码.zip

后端 30.25KB 20 需要积分: 1
立即下载

资源介绍:

c语言文本编辑器系统源码.zip
/*文本编辑器editor源代码*/ /* 【自学去】网站收集 http://www.zixue7.com */ #include #include #include #include #define LEFT 0x4b00 /*←:光标左移*/ #define RIGHT 0x4d00 /*→:光标右移*/ #define DOWN 0x5000 /*↓键:光标下移*/ #define UP 0x4800 /*↑键:光标上移*/ #define ESC 0x011b /*ESC键:取消菜单打开操作*/ #define ENTER 0x1c0d /*回车键:换行*/ #define DEL 21248 /*DEL键:删除当前字符*/ #define BACK 3592 /*BackSpace键:删除当前光标位置前一个字符*/ #define CL 29440 /*ctrl+←键:从右至左,选定文本*/ #define CR 29696 /*ctrl+→键:从左到右,选定文本*/ #define Cc 11779 /*ctrl+c键:将选定文本,复制一份到剪贴板中*/ #define Cv 12054 /*ctrl+v键:将剪贴板中的内容复制到当前位置*/ #define Cx 11544 /*ctrl+x键:对选定文本,执行剪切操作*/ #define F1 15104 /*F1键:打开文件菜单*/ #define F2 15360 /*F2键:打开编辑菜单*/ #define F3 15616 /*F3键:打开帮助菜单*/ #define F10 17408 /*F10键:进入文本快速预览模式*/ int value,backup,NUM; /*value保存有值数组元素的最大下标值,backup保存value的副本,NUM保存当前行中的用户输入的字符个数*/ typedef struct record { char ch; /*保存一字符*/ int col, line; /*x轴和y轴坐标*/ }record; record r[500]; /*定义一个有500个元素的结构体数组,保存选定的文本字符的属性*/ typedef struct node /*定义保存行中的单个字符的结构*/ { char ch; /*数据域:保存一字符*/ struct node *next; /*指针域:指向下一个结点的指针*/ }node;/*由此类型节点构成的单链表,命名为:列单链表*/ typedef struct Hnode /*定义保存所有列单链表首节点的指针的结构*/ { node *next; /*指向列单链表的首节点的地址*/ struct Hnode *nextl; /*指向下一个节点的指针*/ }Hnode;/*由此类型节点构成的单链表,命名为:行单链表*/ void drawmain() /*画主窗口函数*/ { int i,j; gotoxy(1,1); /*在文本窗口中设置光标至(1,1)处*/ textbackground(7); /*选择新的文本背景颜色,7为LIGHTGRAY淡灰色*/ textcolor(0); /*在文本模式中选择新的字符颜色0为BLACK黑*/ insline(); /*在文本窗口的(1,1)位置处中插入一个空行*/ for(i=1;i<=24;i++) { gotoxy(1,1+i); /*(x,y)中x不变,y++*/ cprintf("%c",196); /*在窗口左边输出-,即画出主窗口的左边界 */ gotoxy(80,1+i); cprintf("%c",196); /*在窗口右边,输出-,即画出主窗口的右边界*/ } for(i=1;i<=79;i++) { gotoxy(1+i,2); /*在第2行,第2列开始*/ cprintf("%c",196); /*在窗口顶端,输出-*/ gotoxy(1+i,25); /*在第25行,第2列开始*/ cprintf("%c",196); /*在窗口底端,输出-*/ } gotoxy(1,1); cprintf("%c",196); /*在窗口左上角,输出-*/ gotoxy(1,24); cprintf("%c",196); /*在窗口左下角,输出-*/ gotoxy(80,1); cprintf("%c",196); /*在窗口右上角,输出-*/ gotoxy(80,24); cprintf("%c",196); /*在窗口右下角,输出-*/ gotoxy(7,1); cprintf("%c %c File %c %c",179,17,16,179); /* | < > |*/ gotoxy(27,1); cprintf("%c %c Edit %c %c",179,17,16,179); /* | < > |*/ gotoxy(47,1); cprintf("%c %c Help %c %c",179,17,16,179); /* | < > |*/ gotoxy(5,25); /*跳至窗口底端*/ textcolor(1); cprintf(" Row:1 Col:1"); gotoxy(68,25); cprintf("Version 2.0"); } void qview(Hnode *q) /*快速预览文本:开头:#,回车:* */ { void view(Hnode *q); /*view()函数声明*/ node *p; int i; window(1,1,80,25); /*定义文本窗口大小*/ clrscr(); /*清屏*/ /*循环读取两个单链表中的值:q是一个指向行单链表首节点的指针, 此单链表数据域的值为实际保存各行字符的列单链表p中的首节点地址*/ do{ p=q->next; /*p指向保存行数据的列单链表的首节点的地址*/ cprintf("#"); /*每行开头,打印此字符,不管前面是否有回车符*/ while(p!=NULL) /*循环读取单链表p中的值*/ { if(p->ch==13) putch('*'); /*若为回车键,打印出*号*/ else putch(p->ch); /*输出各行中的字符到预览窗口*/ p=p->next; /*指向下一个节点*/ } q=q->nextl; /*指向下一个节点*/ printf("\n");/*输出一个回车*/ }while(q!=NULL); getch(); clrscr(); drawmain();/*按任意键后,回到主窗口界面*/ window(2,2,79,23); textbackground(9); for(i=0;i<24;i++) insline(); /*插入24个空行*/ window(3,3,78,23); textcolor(10); } void view(Hnode *q) /*按行显示保存在单链表中的文本字符,q为指向行单链表中第一个节点的指针*/ { node *p; /*p为保存列单链表节点元素地址的指针*/ clrscr(); /*清屏*/ /*双重循环,读取并显示保存在单链表中字符*/ do{ p=q->next; while(p!=NULL&&p->ch>=32&&p->ch<127&&p->ch!=13&&p->ch!=-1) /*指针p不能为空,且数据域必须为常规字符*/ { putch(p->ch);/*在文本窗口中输出该字符*/ p=p->next; /*指向下一个节点*/ } q=q->nextl; /*指向下一个节点*/ if((p->ch==13||p->ch==-1)&&q!=NULL) gotoxy(1,wherey()+1); /*若ch为回车或EOF标记,光标跳至下行的开始处*/ }while(q!=NULL); /*逐行逐列显示文本字符*/ } int check(Hnode *Hhead,int m,int n) /*check():在单链表中检查第m行第n列位置的字符,若为常规字符,则返回该字符*/ { int i; Hnode *q; node *p; q=Hhead; for(i=1;inextl; p=q->next;/*获取第m个节点的数据域*/ for(i=1;inext; if(p->ch==13) return -1; /*若第m行,第n列的字符为回车键,则返回-1*/ if(p->ch>=32&&p->ch<127) return p->ch; /*若第m行,第n列的字符为常规字符,则返回该字符*/ else return 0; /*若第m行,第n列的字符既非回车符又非常规字符,则返回0*/ } int judge(Hnode *Hhead,int m) /*judge():返回第m行中的常规字符总的个数,不包括回车符*/ { Hnode *q; node *p; int i,num=0; q=Hhead; for(i=1;inextl; if(q==NULL) return -1; /*返回-1,表示第m行不存在*/ p=q->next; while(p->next!=NULL) { p=p->next; num++; /*统计第m行的字符个数*/ } /*行尾字符还没有判断,接下来判断行尾字符*/ if(p->ch==13&&num==0) return 0; /*返回0,表示当前行只有一个回车字符*/ if(p->ch>=32&&p->ch<127) return num+1; /*返回num+1,表示当前行的最后一个字符为常规字符*/ if(p->ch==13&&num!=0) return num; /*返回num,表示当前行的最后一个字符为回车符,不计算在内*/ else return 1;/*返回num,表示当前行中只有一个字符,且没有回车符*/ } int del(Hnode *Hhead,int m,int n) /*del():删除第m行,第n列位置的字符*/ { Hnode *q,*q1; node *p1,*p2,*tail; int i,num=0,j,flag=0; q=Hhead; if(n==0&&m==1) return; /*第1行,第0列不存在*/ if(n==0&&m>1) /*若为第0列字符,但行必须大于1,执行向上行移处理*/ { n=76; m=m-1; gotoxy(n,m);/*移至第m-1行,第76列*/ flag=1; /*移位的标志置1*/ } for(i=1;inextl; p1=q->next; for(i=1;inext; p2=p1->next; /*p2指向列单链表中的第n个元素*/ if(n==1) /*若是删除第m行第1列的字符*/ { q->next=p1->next; free(p1); } else { p1->next=p2->next; /*在单链表中删除第m行第n列的元素*/ free(p2); }

资源文件列表:

c语言文本编辑器系统源码.zip 大约有8个文件
  1. c语言文本编辑器系统源码/
  2. c语言文本编辑器系统源码/c语言文本编辑器系统源码/
  3. c语言文本编辑器系统源码/c语言文本编辑器系统源码/c语言文本编辑器系统源码/
  4. c语言文本编辑器系统源码/c语言文本编辑器系统源码/c语言文本编辑器系统源码/editor.c 38.27KB
  5. c语言文本编辑器系统源码/c语言文本编辑器系统源码/c语言文本编辑器系统源码/EDITOR.EXE 24.99KB
  6. c语言文本编辑器系统源码/c语言文本编辑器系统源码/c语言文本编辑器系统源码/EDITOR.OBJ 13.09KB
  7. c语言文本编辑器系统源码/新建文件夹/
  8. c语言文本编辑器系统源码/新建文件夹 (2)/
0评论
提交 加载更多评论
其他资源 Qt界面:通过QCharts图像显示Art采集卡采集的6个通道的数值
Qt界面:通过QCharts图像显示Art采集卡采集的6个通道的数值
旅拍店小程序v2.1.2
旅拍店或者摄影师可以在小程序上设置自己的可预约时间,价格,拍摄介绍,并定义不同的套餐(服装套数,底片张数,精修数量,取景风格,套餐价格等),顾客可以根据套餐内容和日程安排选择合适的时间进行预约和在线支付。这样可以提高预约的效率,减少沟通成本,方便双方的安排
C#实现简易记事本项目
这是用visual studio C#中Windows窗体应用(.NET Framework)开发的一个简易记事本项目,其中包含新建,打开,保存,加粗。倾斜,字体,字号功能,已经具备了一定的雏形。项目采用模块化设计,大大提高了代码的可读性和可维护性。每个功能模块清晰独立,高内聚、低耦合的设计理念使得开发者在调试或扩展功能时能够轻松定位相关代码。这种结构化的编程方式对初学者尤其友好,可以帮助初学者逐步理解面向对象编程的核心概念。同时方便广大爱好者以及工作朋友们进行学习,融会贯通后也可以在此基础上或者独立的进行自己的设计,总之,简易记事本项目为C#和Windows窗体开发者提供了良好的学习案例,同时也是展示和实现创意的平台。希望通过这个项目,广大的WinForms开发者能够快速进步,逐步提升技能,创造出更加丰富的应用程序。随着技术的不断发展,大家将能够在此基础上探索更多可能性,达到更加高强的水平。
TCP A AA A A A A A
TCP A AA A A A A A
c语言万年历源码.zip
c语言万年历源码.zip
东财,baostock,tushare数据获取代码
东财,baostock,tushare数据获取代码
k8s二进制部署文件 node.zip
node
西安电子科技大学 电子课程设计 msm仿真电路图文件 + 电路图导出的pdf
西安电子科技大学 电子课程设计 msm仿真电路图文件 + 电路图导出的pdf