#include<stdio.h> #include<string.h> #include<ctype.h> #include<fstream> #include <iostream> using namespace std;
int main() { int i=0; char MingText[1024], MiText[1024]; printf("请输入明文:"); gets(MingText);
while(MingText[i]) { if(isupper(MingText[i])) { MiText[i]='Z'-(MingText[i]-'A'); } else if(islower(MingText[i])) { MiText[i]='z'-(MingText[i]-'a'); } else MiText[i]=MingText[i]; i++; } ofstream tfile("C://data.txt",ios::binary); tfile.write((char* )& MiText,sizeof MiText) ; tfile.close(); MiText[i]=0; printf("密文为:"); puts(MiText);
ifstream is("C://data.txt"); if(is) { is.read((char *)&MiText,sizeof(MiText)); } else { cout << "无法找到文件!" <<endl; }
while(MiText[i]) { if(isupper(MingText[i])) { MingText[i]='Z'-MiText[i]+'A'; } else if(islower(MingText[i])) { MingText[i]='z'-MiText[i]+'a'; } else MingText[i]=MiText[i]; i++; } return 0; }
什么错? 最好把错误贴出来
运行没错误,就是结果不正确.
@此夏、若空: 结果不对 ,要么你代码里i这种边界判断出问题了,要么就是加密算法出问题了。
你的代码排版好乱,我这么懒,没耐心看啊~
解密之前,需要初始化 i = 0; (加密之后 i = strlen(MingText))