凯撒密码,C语言,求救!

Python09

凯撒密码,C语言,求救!,第1张

#include <stdio.h>

#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

}

这是之前写的,可以看看