qq_51952323 2021-05-18 08:12 采纳率: 50%
浏览 39
已采纳

为什么这个函数调用时老是闪退?求大佬解惑(加密文件里面的内容)

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");
}
  • 写回答

3条回答 默认 最新

  • CSDN专家-link 2021-05-18 08:29
    关注

    if (flag = 1) C = fgetc(source);

    改为if (flag == 1) C = fgetc(source);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 求帮我调试一下freefem代码
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图