我正在尝试用 C 编写一个简单的加密程序。我的目标是将“jim”(可以是任何单词)翻译为 10、9、13。然后加上 1,2,3(因为单词有 3 个字母)并得到 11,12,16 然后再翻译成文本,然后在屏幕上写 klp。我有 2 个算法,一个用于加密,第二个用于返回第一个。它是工作,但是对于这些话,当我启动第一个算法然后第二个算法(逆)时,出现问题“编译器可执行通过”。“compileo vou euecrqable throrgh”我检查了几次算法,我不知道我忽略了哪里
PS:如果你想运行名为 unencrypted.txt 的 make txt 文件并在其中写入单词,那么第一个算法然后是第二个
int main() {
int g,z,o,c,l,i,j,k,*D;
char alfabe[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
FILE *fp1;
FILE *mat;
char word[20];
fp1 = fopen("unencrypted.txt","r+");
do {
g = fscanf(fp1,"%s",word);
if (g != EOF) {
mat=fopen("encrypted.txt","a+");
c=strlen(word);
D=(int*)calloc(c,sizeof(int));
for(i=0;i<c;i++) {
for(j=0;j<26;j++) {
if(word[i]==alfabe[j]) {
D[i]=(((j+1)+(i+1))%26);
break;
}
}
}
}
for(z=0;z<c;z++){
o=D[z];
word[z]=alfabe[o-1];
}
for(k=0;k<c;k++) {
fprintf(mat,"%c",word[k]);
}
fprintf(mat," ");
fclose(mat);
} while (g != EOF);
fclose(fp1);
}
int main() {
int g,z,o,c,l,i,j,k,*D;
char alfabe[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
FILE *fp1;
FILE *mat;
char word[20];
fp1 = fopen("encrypted.txt","a+");
do {
g = fscanf(fp1,"%s",word);
if (g != EOF) {
mat=fopen("unencrypted1.txt","a+") ;
c=strlen(word);
D=(int*)calloc(c,sizeof(int));
for(i=0;i<c;i++) {
for(j=0;j<26;j++) {
if(word[i]==alfabe[j]) {
if(0>((j+1)-(i+1))){
D[i]=((j+1)-(i+1)+26);
} else D[i]=((j+1)-(i+1));
break;
}
}
}
}
for(z=0;z<c;z++){
o=D[z];
word[z]=alfabe[o-1];
}
for(k=0;k<c;k++) {
fprintf(mat,"%c",word[k]);
}
fprintf(mat," ");
fclose(mat);
} while (g != EOF);
fclose(fp1);
}