#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
void dofile(char *in_fname,char *pwd,char *out_fname);/**/
int main(int argc,char *argv[])/*main() */
{
char in_fname[30];/**/
char out_fname[30];
char pwd[8];/**/
if(argc!=4){/**/
printf("/nIn-fname:/n");
gets(in_fname);/**/
printf("Password:/n");
gets(pwd);/**/
pwd[0]=pwd[0]^'x';
printf("Out-file:/n");
gets(out_fname);/**/
dofile(in_fname,pwd,out_fname);
}
else{/*,*/
strcpy(in_fname,argv[1]);
strcpy(pwd,argv[2]);
strcpy(out_fname,argv[3]);
dofile(in_fname,pwd,out_fname);
}return 0;
}
/**/
void dofile(char *in_fname,char *pwd,char *out_file)
{
FILE *fp1,*fp2;
register char ch;
int j=0;
int j0=0;
fp1=fopen(in_fname,"rb");
if(fp1==NULL){
printf("cannot open in-file./n");
exit(1);/*,*/
}
fp2=fopen(out_file,"wb");
if(fp2==NULL){
printf("cannot open or create out-file./n");
exit(1);/*,*/
}
while(pwd[++j0]);
ch=fgetc(fp1);
/**/
while(!feof(fp1)){
fputc(ch^pwd[j>=j0?j=0:j++],fp2);/*fp2*/
ch=fgetc(fp1);
}
fclose(fp1);/**/
fclose(fp2);/**/
}
/**/