C语言文件加密代码检查

来源:百度知道 编辑:UC知道 时间:2024/05/14 23:36:41
#include<stdio.h>
main()
{
char c1,fn[30];
int delt;
FILE *fp,*fp1;
printf("input filename:");
scanf("%s",fn);
fp=fopen(fn,"r");
fp1=fopen("result.txt","w");
do{
fscanf(fp,"c%",&c1);
if(c1>=32 && c1<=126)
{
delt=c1-32;
c1=126-delt;
}
fprintf(fp1,"%c",c1);
}while(c1!='\n');
}

以上是我编写的一段C语言文件加密代码.原文件只有1K.而加密后密文有4M多.这是怎么回事.我仔细察看也没发现什么错误.而且用下面的机密文件解密后得不到原文件.实在是纳闷.请大虾解答.

#include<stdio.h>
main()
{
char c1,fn[30];
int delt;
FILE *fp,*fp1;
printf("input filename:");
scanf("%s",fn);
fp=fopen(fn,"r");
fp1=fopen("source.txt","w");
do{
fscanf(fp,"c%",&c1);
if(c1>=32 && c1<=126)
{
delt=126-c1;
c1=32+de

1、%c写成了c%
2、使用\n作为结束很不好,如果文件本身没有\n造成死在那儿
改为测试文件是否已经结束的函数feof
//解密部分
#include<stdio.h>
void main()
{
char fn[30];
unsigned char c1;
int delt;
FILE *fp,*fp1;
printf("input filename:");
scanf("%s",fn);
fp=fopen(fn,"r");
fp1=fopen("source.txt","w");
while(feof(fp)==0)
{
fscanf(fp,"%c",&c1);
if(c1>=32 && c1<=126)
{
delt=126-c1;
c1=32+delt;
}
fprintf(fp1,"%c",c1);
}
::fclose(fp);
::fclose(fp1);
}
//加密部分

#include<stdio.h>
void main()
{
char fn[256];
unsigned char c1;
int delt;
FILE *fp,*fp1;
printf("input filename:");
scanf("%s",fn);
fp=fopen(fn,"r");
fp1=fopen("result.txt","w");