三级(C语言)高手请进来。文件加密问题。

来源:百度知道 编辑:UC知道 时间:2024/05/15 16:29:00
程序功能:ReadDat读取明文并进行处理,ReadKey读取密码并进行处理,获得密码中字符顺序。encrypt1(mylen,b,out)函数是按转换法加密并输出。可是总是提示:paramter "out" never used in function encrypt1;
调试成功的加20分!!!!谢谢。
#include "stdio.h"
#include "string.h"
int ReadDat(void);
int ReadKey(void);
void WriteDat(void);
int b[100],xx[1000],mylen;
char mm[100];
char out[100][100];
char a;

ReadDat()
{
int i,j,k;

FILE *fp;
for(i=0;i<100;i++)
for(j=0;j<100;j++)
out[i][j]=1;
fp=fopen("in.dat","r");
i=0;
while(a!=EOF)
{
xx[i]=a;
i++;
a=fgetc(fp);
}
xx[i]='\0';
fclose(fp);
for(i=0;i<1000&&xx[j]!='\0';i++)
if(xx[i]>'a'&&xx[i]<='z')
xx[i]=xx[i]-32;

for(i=0;i<1000&&xx[j]!='\0';i++)
if(xx[i]<65)
for(j=i;j<1000&&xx[j]!='\0';j++)
xx[j]=xx[j+1];

问题补充:调试达到的目的是要正确输出结果。
OUT.DAT和Printf。
你不要告诉我在同一目录下没有 in.dat 这个文件?那我再忙也白搭哦。

int encrypt1(int mylen,int *b,char *out)

char out[100][100];你定义的是两维字符串,可你看你函数里定义的是一维字符串,值传递类型不配,改成

int encrypt1(int mylen,int *b,char *out[])

下面是我给你改了的,你复制过去,运行一下,我这里是好了。 编译时记得把中文删掉。
#include "stdio.h"
#include "string.h"
int ReadDat(void);
int ReadKey(void);
void WriteDat(void);
int b[100],xx[1000],mylen;
char mm[100];
char out[100][100];
char a;

ReadDat()
{
int i,j,k;

FILE *fp;
for(i=0;i<100;i++)
for(j=0;j<100;j++)
out[i][j]=1;
fp=fopen("in.dat","r");
i=0;
while(!feof(fp)) 这里改了。
{
xx[i]=a;
i++;
a=fgetc(fp);
}
xx[i]='\0';
fclose(fp);
for(i=0;i<1000&&xx[j]!='\0';i++)
if(xx[i]>'a'&&xx[i]<='z