1天设计写了这个“高级”代码, 有需要同学可以看看。
这个文本编辑器和其他文本编辑器差不多。
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
char a[99999],c,file[10000];
int i=0;
void set(unsigned short BC){
HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(handle,15+BC*0x10);
}
FILE *fp;
main(int rgc,char *rgv[]){
puts("Documentation:");
puts("Ctrl+R(after ^R): move the cursor right");
puts("^L: move cursor left");
puts("^S: Save as filename");
puts("^O: Open filename");
puts("^Q: Quit");
puts("editor filename.txt: Open filename.txt in console");
system("pause");
system("cls");
fp=fopen(rgv[1],"r");
i=0;
for(;(c=fgetc(fp))!=EOF;i++)a[i]=c;
int cur=0;
for(;;++cur){
i=0;
for(;a[i]!='\0';i++){
if(i==cur-1)set(10);
putch(a[i]);
set(0);
}
c=getch();
if(c==12){
cur-=2;
if(cur==-2)cur=-1;
}else if(c==18){
if(a[cur]=='\0')cur--;
}else if(c==13)a[cur]='\n';
else if(c==19){
set(9);
gets(file);
set(0);
fp=fopen(file,"w+");
i=0;
for(;a[i]!='\0';i++)fprintf(fp,"%c",a[i]);
break;
}else if(c==15){
set(9);
gets(file);
set(0);
fp=fopen(file,"r");
i=0;
for(;(c=fgetc(fp))!=EOF;i++)a[i]=c;
}else if(c==17){
return 0;
}
else a[cur]=c;
system("cls");
}
}