凯撒密码解密源代码.docVIP

  • 0
  • 0
  • 约2.94千字
  • 约 3页
  • 2020-04-12 发布于浙江
  • 举报
# include iostream # include ctype.h # include stdlib.h using namespace std; void main(int argc, char *argv[]) { FILE *fp_ciper, *fp_plain; //密文与明文的文件指针 char ch_ciper, ch_plain; int i, temp = 0; //i用来存储最多次数出现的下标 //temp用在求最多次数时用 int key; int j; int num[26]; //保存密文中字母出现次数 for (i = 0; i 26; i++) { cout ================================= endl; cout ================================= endl; if (argc != 3) { cout 此为KAISER解密用法:[文件名][密文路径][明文路径] endl; cout 例如: decryption F:\ciper_2_1.txt F:\plain.txt endl; //判断输入参数是否正确 } if ((fp_ciper = fopen argv[1], r)) = NULL) { cout 打开密文出错!解密失败 endl; exit(0); } while ((ch_ciper = fgetc(fp_ciper)) != EOF)// EOF=End Of File 定义: const int EOF = -1; { switch (ch_ciper) //统计密文各字母出现的次数 { case A:num[0] = num[0] + 1; break; case B:num[1] = num[1] + 1; break; case C:num[2] = num[2] + 1; break; case D:num[3] = num[3] + 1; break; case E:num[4] = num[4] + 1; break; case F:num[5] = num[5] + 1; break; case G:num[6] = num[6] + 1; break; case H:num[7] = num[7] + 1; break; case I:num[8] = num[8] + 1; break; case J:num[9] = num[9] + 1; break; case K:num[10] = num[10] + 1; break; case L:num[11] = num[11] + 1; break; case M:num[12] = num[12] + 1; break; case N:num[13] = num[13] + 1; break; case O:num[14] = num[14] + 1; break; case P:num[15] = num[15] + 1; break; case Q:num[16] = num[16] + 1; break; case R:num[17] = num[17] + 1; break; case S:num[18] = num[18] + 1; break; case T:num[19] = num[19] + 1; break; case U:num[20] = num[20] + 1; break; case V:num[21] = num[21] + 1; break; case W:num[22] = num[22] + 1; break; case X:num[23] = num[23] + 1; break; case Y:num[24] = num[24] + 1; break; case Z:num[25] = num[25] + 1; break; } fclose(fp_ciper); for (i = 0; i 26; i++) { if (num[i] temp) { i

文档评论(0)

1亿VIP精品文档

相关文档