📄 13-8.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 + -