void encode2() /*加密文件*/
{
int m,n=strlen(password.ps),d;
int i,flag = 1; //m存储加密字符长度 ,n存储加密字符串长度 ,i 为临时变量
char N,w;
char c,C;//临时字符存储变量
char ch='a';
FILE *result = fopen("result.txt","wt");
if(result == NULL )
{
printf("无法打开 result.txt \n");
exit(0);
}
FILE *source = fopen("source.txt","wt");
if(source == NULL )
{
printf("无法打开 source.txt \n");
flag = 0;
}
char filename[100]; //文件名
printf("请输入要加密的文件名及地址:\n");
getchar();
gets(filename); //这句要用户输入文件名
FILE *fp=fopen(filename,"r");
if (fp==NULL) //打开文件,并判断是否有打开错误
{
printf("无法打开文件\n");
system("pause");
exit(0);
}
while((ch=fgetc(fp))!=EOF)
{
fputc(ch,source);
}
if (flag = 1) C = fgetc(source);
for( i=0;(c=fgetc(source)) != EOF;i++)
{
static int a=1;
if((a<password.wd)&&(i%(password.l+1)==0))
{
N=c+password.ps[a%n]-48;
if(N>122)
{
N=N%122; /*模运算*/
}
fputc(N,result);
a++;
}
else fputc(N,result);
}
printf("\n加密成功!\n");
fclose(result);
fclose(source);
fclose(fp);
system("pause");
}

为什么这个函数调用时老是闪退?求大佬解惑(加密文件里面的内容)
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- CSDN专家-link 2021-05-18 08:29关注
if (flag = 1) C = fgetc(source);
改为if (flag == 1) C = fgetc(source);
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报