c语言问题,我写了一个加密与解密的程序(文件移位),不知道哪里错了,求大神帮忙看看
#include<stdio.h>#include<stdlib.h>voidmain(){FILE*fp;charx,f[80];inty,n,key;printf("...
#include<stdio.h>#include<stdlib.h>void main(){ FILE *fp; char x,f[80]; int y,n,key; printf("\n****************************"); printf("\n* 文件移位加密与解密 *"); printf("\n* 软件工程 2013 *"); printf("\n* 何博 201310804008 *"); printf("\n****************************"); printf("\n请输入文件名:"); while(1) { scanf("%s",f); if((fp=fopen(f,"r"))==NULL) { printf("\n无法打开该文件,请重新输入:"); } else { printf("请输入密码:"); scanf("%d",&key); key=key%26; printf("\n加密请输入1,解密请输入2:"); scanf("%d",n); printf("\n"); if(n==1) { while((x=fgetc(fp))!=EOF) { if(x>='A'&&x<='Z') { x=x+(char)key; if(x>'Z') x=x-26; } if(x>='a'&&x<='z') { y=(int)x+key; if(y>122) { x=(char)(y-26); } else x=(char)y; } printf("%c",x); } n=0; fclose(fp); printf("\n"); } else if(n==2) { while((x=fgetc(fp))!=EOF) { if(x>='a'&&x<='z') { x=x-key; if(x<'a') x=x+26; } if(x>='A'&&x<='Z') { x=x-key; if(x<'A') x=x+26; } printf("%c",x); } n=0; fclose(fp); printf("\n"); } printf("\n********感谢您的使用********"); } }}
展开
展开全部
乍一眼看上去么啥问题啊,你是功能出问题了,还是报错了?还是无法运行什么的?
#include<stdio.h>
#include<stdlib.h>
void main(){
FILE *fp;
char x,f[80];
int y,n,key;
printf("\n****************************");
printf("\n* 文件移位加密与解密 *");
printf("\n* 软件工程 2013 *");
printf("\n* 何博 201310804008 *");
printf("\n****************************");
printf("\n请输入文件名:");
while(1) {
scanf("%s",f);
if((fp=fopen(f,"r"))==NULL) {
printf("\n无法打开该文件,请重新输入:");
}
else {
printf("请输入密码:");
scanf("%d",&key);
key=key%26;
printf("\n加密请输入1,解密请输入2:");
scanf("%d",n);
printf("\n");
if(n==1) {
while((x=fgetc(fp))!=EOF) {
if(x>='A'&&x<='Z') {
x=x+(char)key;
if(x>'Z') x=x-26;
}
if(x>='a'&&x<='z') {
y=(int)x+key;
if(y>122) {
x=(char)(y-26);
}
else x=(char)y;
}
printf("%c",x);
}
n=0;
fclose(fp);
printf("\n");
}
else if(n==2) {
while((x=fgetc(fp))!=EOF) {
if(x>='a'&&x<='z') {
x=x-key;
if(x<'a')
x=x+26;
}
if(x>='A'&&x<='Z') {
x=x-key;
if(x<'A')
x=x+26;
}
printf("%c",x);
}
n=0;
fclose(fp);
printf("\n");
}
printf("\n********感谢您的使用********");
}
}
}
//先给你调整下格式再慢慢看
展开全部
其他地方没问题,就是这一个地方
scanf("%d",n);
scanf("%d",&n);
应该是你疏忽漏掉了。
再就是你的这个程序怎么没有把加密后的文件存到磁盘上而仅仅是输出到屏幕上啊?
scanf("%d",n);
scanf("%d",&n);
应该是你疏忽漏掉了。
再就是你的这个程序怎么没有把加密后的文件存到磁盘上而仅仅是输出到屏幕上啊?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我有 需要用现有超级计算机破解到下个世纪都不破解不出 的加密方法
因为世上没有什么是破解不了的
因为世上没有什么是破解不了的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这可以是一个
#包括中
无效代码(字符* P,整型键)
{
而(* P!='\ 0') {
* P = 97 +(* P-97 +键)%26;
的p + +;
}
}
无效UNCODE(字符* P,诠释键)
{
而(* p值='\ 0')
{
* P = 97 +(* P-71-键)%26; ! P + +;
}
}
的main()
{
字符海峡[100];
整数n,则密钥; printf(“请输入密钥:”);
的scanf(“%d个”,&键);
printf(“请输入加密,解密输入2:”);
scanf函数(“%d个”,&N);
printf(“请输入一个字符串:”);
的scanf(“%S”,STR);
如果(N = 1)
代码(STR,键);
printf(“请密文为%s \ n”,海峡);
}
否则,如果(N = 2 )
{
UNCODE(STR,键);
的printf(“本来%S \ N”,海峡);
}
}
#包括中
无效代码(字符* P,整型键)
{
而(* P!='\ 0') {
* P = 97 +(* P-97 +键)%26;
的p + +;
}
}
无效UNCODE(字符* P,诠释键)
{
而(* p值='\ 0')
{
* P = 97 +(* P-71-键)%26; ! P + +;
}
}
的main()
{
字符海峡[100];
整数n,则密钥; printf(“请输入密钥:”);
的scanf(“%d个”,&键);
printf(“请输入加密,解密输入2:”);
scanf函数(“%d个”,&N);
printf(“请输入一个字符串:”);
的scanf(“%S”,STR);
如果(N = 1)
代码(STR,键);
printf(“请密文为%s \ n”,海峡);
}
否则,如果(N = 2 )
{
UNCODE(STR,键);
的printf(“本来%S \ N”,海峡);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询