求助:解析C语言程序,要求有详细注释。

来源:百度知道 编辑:UC知道 时间:2024/06/08 16:54:56
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

main()
{
void sc(char *fp,char *key,int Flen,int Klen);
FILE *fp;
char *pBuf,filename[20],key[20],ch;

printf("请输入选择:A、加密 B、解密 C退出\n");
ch=getchar();
while(ch!='c'&&ch!='C')
{
if(ch=='a'||ch=='A'||ch=='b'||ch=='B')
{
printf("请输入要打开的文件名:\n");
scanf("%s",filename);
if((fp=fopen(filename,"rb"))==NULL)
{printf("无法打开文件,请注意输入后缀!\n");
exit(0);
}

fseek(fp,0,SEEK_END);
int len=ftell(fp);
pBuf=new char[len+1];
rewind(fp);
fread(pBuf,1,len,fp);
pBuf[len]=0;
printf("%s\n",pBuf);
fclose(fp);

printf("请输入加密/解密的密码:\n");
scanf("%s",key);

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

main()
{
void sc(char *fp,char *key,int Flen,int Klen);
FILE *fp; //定义文件指针
char *pBuf,filename[20],key[20],ch; //定义一个缓冲区指针,文件名字符数组,加密字符数组,一个字符

printf("请输入选择:A、加密 B、解密 C退出\n"); //提示输入A/B/C
ch=getchar(); //获取键盘输入
while(ch!='c'&&ch!='C') //判断键盘输入,如果输入的不是C
{
if(ch=='a'||ch=='A'||ch=='b'||ch=='B') //如果输入的是a/A/bB
{
printf("请输入要打开的文件名:\n"); //提示输入要打开的文件名
scanf("%s",filename); //取得输入的文件名
if((fp=fopen(filename,"rb"))==NULL) //打开文件
{printf("无法打开文件,请注意输入后缀!\n"); //如果无法打开文件则提示
exit(0);
}

fseek(fp,0,SEEK_END); //将位置指针移到文件末尾
int len=ftell(fp); //取得指针相对于文件头的位移量
pBuf=new char[len+1]; //pBuf指向一个长度为len+1的缓冲区
rewind(fp); //位置指针置于文件开