简单C语言解码

Python018

简单C语言解码,第1张

密钥语句( fscanf(kptr,"%d ",key))错误,仅仅读了1个。需要循环才能完整地读出所有密钥,

for(i=0i<strlen(encrypt)i++)

fscanf(kptr,"%d ",&key[i])

#include <stdio.h> 

main() { 

FILE *fp1,*fp2

char a[100]

char secret[]="Kirschsaft!"

int i,j

fp1 = fopen("source.txt","r")

fp2 = fopen("result.txt","w")

if (fp1 == NULL || fp2 == NULL)

return

while(fgets(a,100,fp1)!=NULL){

for(i=0,j=0a[i]!='\n'i++,j++){

if(j==11)

j=0

if((int)a[i]>=32){

a[i]=a[i]^secret[j]

if((int)a[i]<32){

a[i]=a[i]+32

}

}

}

for(j>0&&j<11j++,i++){

a[i]=secret[j]

}

a[i++]='\n'

a[i]='\0'

fprintf(fp2,"%s",a)

}

}

应该是限制高3位,使得每个字符的ASCII码大于0010 0000,即32。

我的策略是如果做完异或之后的ASCII码小于32就给他加32.