c语言文本编辑器

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");
 }
}

猜你喜欢

转载自blog.csdn.net/yoga1976/article/details/82926476