#include <string.h>
int main()
{
int i = 0
int len = 0
char ch
char buf[256] = {0}
char nor[26] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}
char enc[26] = {'s','u','w','y','a','c','e','g','i','k','m','o','q','r','t','v','x','z','b','d','f','h','j','l','n','p'}
printf("Encode or Decode: ")
scanf("%c",&ch)
printf("please input your string: ")
fflush(stdin)
gets(buf)
len = strlen(buf)
switch (ch)
{
case 'e':
case 'E':
for (i=0i<leni++)
{
buf[i] = enc[buf[i] - 'a']
}
break
case 'd':
case 'D':
for (i=0i<leni++)
{
buf[i] = nor[i]
}
break
default:
printf("wrong input!\n")
}
printf("<%s>\n",buf)
return 0
}
你需要添加路径: ../file.txt因为你的exe文件在debug文件夹下,在该文件夹下没有你输入的哪个文件,程序中是只读的形式打开文件的。所以,会提示存出错。
两种解决办法:
第一个:将exe拷贝到加密文件的路径下
第二个:将文件烤到exe文件路径下。
根本的解决办法就是: 给定文件的相对路径或者绝对路径,绝对不会出现问题的。
#include<stdio.h>#include<string.h>
#define PASSWORD 3
int main()
{
char c
FILE *source = fopen("source.txt","r")//源 解密时将该源文件换成加密后的文件
FILE *result = fopen("result.txt","w")//处理结果
while((c=fgetc(source))!=EOF)//加密
{
if(c>='a'&&c<='z')
c='a'+(c-'a'+PASSWORD)%26
else if(c>='A'&&c<='Z')
c='A'+(c-'A'+PASSWORD)%26
fputc(c,result)
}
/*
while((c=fgetc(source))!=EOF)//解密 解密时将加密部分注释掉
{
if(c>='a'&&c<='z')
c='a'+(c-'a'+26-PASSWORD)%26
else if(c>='A'&&c<='Z')
c='A'+(c-'A'+26-PASSWORD)%26
fputc(c,result)
}
*/
close(source)
close(result)
system("pause")
return 0
}
这是之前写的,可以看看