一个简单的字符加密程序
它加密了第一次输入的字符,但是当我输入指令时,它却不按照指令执行,可是我没有发现我的代码有任何问题呀!后来我换了另一种方式编写的代码就没有上面的问题了。有人知道这是怎么回事?
下面是刚开始的代码:
// ConsoleApplication19.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
#include<string.h>
using std::cin;
using std::cout;
using std::endl;
int _tmain(int argc, _TCHAR* argv[])
{
bool k=true;
int result=3;
int i;
int count=0;
char a[128]={'\0'};//存储明文数组
char b[128]={'\0'};//存储密文数组
while(k) //设置无穷循环
{
if(result=1) //加密明文
{
cout<<"请输入要加密的明文:\n";
gets_s(a);
count=strlen(a);
for(i=0;i<count;i++)
{
b[i]=a[i]+i-4;
}
b[i]='\0';
cout<<"加密后的密文是:"<<b<<std::endl;
}
else
if(result=2) //解密明文
{
count=strlen(a);
for(i=0;i<count;i++)
{
a[i]=b[i]+4-i;
}
a[i]='\0';
cout<<"解密后明文是:"<<a<<std::endl;
}
else
if(result=3) //跳出
break; //跳出无穷循环
else
cout<<"请输入正确指令:\n";
cout<<"输入1加密新明文,输入2解密已经加密的密文,输入3退出系统"<<std::endl;
cout<<"请输入正确指令:\n";
cin>>result;
}
return 0;
}
这是改进后的代码:
// ConsoleApplication20.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
#include<string.h>
using std::cin;
using std::cout;
using std::endl;
int _tmain(int argc, _TCHAR* argv[])
{
char a[255]={'\0'};//存储明文存储组
char b[255]={'\0'}; //存储密文数组
int result=1;
int count;
int i;
while(1)
{
switch(result)
{
case 1:
{ cout<<"*****************************************\n";
cout<<"* *\n";
cout<<"* 请输入要加密的明文: *\n";
cout<<"* *\n";
cout<<"*****************************************\n";
cout<<endl;
cout<<"*****************************************\n";
cin>>a;
cout<<"*****************************************\n";
count=strlen(a);
for(i=0;i<count;i++)
{
b[i]=a[i]+i-6;
} b[i]='\0';
cout<<"*****************************************\n";
cout<<"* 加密后密文是:"<<b<<endl;
cout<<"*****************************************\n";
} break;
case 2:{ count=strlen(b);
for(i=0;i<count;i++)
{
a[i]=b[i]-i+6;
} a[i]='\0';
cout<<"*****************************************\n";
cout<<"* 解密后明文是:"<<a<<endl;
cout<<"*****************************************\n";
} break;
case 3:{
goto loop;
}break;
default :
{ cout<<"*****************************************\n";
cout<<"* 请输入正确指令!!!"<<endl;
cout<<"*****************************************\n";
}
}
cout<<endl;
cout<<"***************************************************************************\n";
cout<<"输入1则继续加密新明文,输入2则解密已加密明文,输入3则退出系统\n 请输入指令:";
cin>>result;
}
loop:;
return 0;
}