⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 13-8.c

📁 本书是单片机系列教材
💻 C
字号:
/*13-8.c*/  
#include "dir.h"
  #include "ctype.h"
  #include "stdio.h"
  void encode(char * );
  void decode(char * );
  int at(char,char * );
  char s[64]="abcdefghijklmnopqrstuvwxyz123456789\
  ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char t[64]= "qwertopasdfghjkizxcvbnm\
MIN2B3V4C5X6Z7L8K9J0HGFDSAPOIUYTREWQ";
void main(int argc,char *argv[ ])
{
   struct ffblk ptr;
	  int done;
char pd;
	  pd=toupper(* argv[2]);
	  if ((argc!=3)|| (strlen(argv[2])>1)||(pd!='E'&&pd!='D')){
      printf("usage error.\n");
	 exit ();
}
done=findfirst(argv[1],&ptr,0);
while(! done){
if(pd=='E'){
  printf("Encoding file:%s\n",ptr.ff_name);
  encode(ptr.ff_name);
  }
  else{
printf("Decoding file%s\n",ptr.ff_name);
      decode(ptr.ff_name);
      }
	  done=findnext(&ptr);
   };
}
void encode(char *filename)
{
  FILE *fp1, *fp2;
  int ch;
  if((fp1=fopen(filename,"rb"))==NULL){
printf("cannot open file:%s\n",filename);
exit();
  }
  if((fp2=fopen("is","wb"))==NULL){
printf("can not open file:is\n");
        exit();
     }
   while((ch=getc(fp1))!=EOF){
	 if(isalnum(ch)||ch==" ")
	   ch=t[at(ch,s)];
	 putc(ch,fp2);
 }
fclose(fp1);
fclose(fp2);
fp1=fopen("is", "rd");
fp2=fopen(filename,"wb");
while((ch=getc(fp1))!=EOF){
     putc(ch,fp2);
}
fclose(fp1);
fclose(fp2);
 }
 void decode(char *filename)
 {  
int ch ;
   FILE * fp1,* fp2;
   if((fp1=fopen(filename,"rd"))==NULL){
printf("cannot open file:%s\n",filename);
  exit();
  }
if((fp2=fopen("is","wb"))==NULL){
  printf("can not open file:is\n");
  exit();
}
while((ch=getc(fp1))!=EOF){
  if(isalnum(ch)||ch==" ")
	ch=s[at(ch,t)];
  putc(ch,fp2);
};
fclose(fp1);fclose(fp2);
fp1=fopen("is","rb");
fp1=fopen("filename,","wb");
while((ch=getc(fp1))!=EOF){
  putc(ch,fp2);
}
fclose(fp1);
fclose(fp2);
}
int at(char ch,char *ss)
{
   register int i;
   for(i=0;i<64;i++)
if(ch==ss[i]) return i;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -