| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 399 人关注过本帖
标题:一个简单的字符加密程序
只看楼主 加入收藏
xhl124
Rank: 1
等 级:新手上路
帖 子:5
专家分:1
注 册:2013-1-20
结帖率:50%
收藏
已结贴  问题点数:5 回复次数:5 
一个简单的字符加密程序
它加密了第一次输入的字符,但是当我输入指令时,它却不按照指令执行,可是我没有发现我的代码有任何问题呀!后来我换了另一种方式编写的代码就没有上面的问题了。
有人知道这是怎么回事?
下面是刚开始的代码:
// 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;
}
搜索更多相关主题的帖子: result include 应用程序 加密 
2013-01-20 22:35
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:1 
调试一下就知道了

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-01-21 12:12
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
收藏
得分:1 
多个else的话应该使用else if不然会出现一些意象不到的问题,我遇见过
2013-01-21 13:01
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:1 
这种1,2,3,4的问题 switch 比 else if 要清楚的多。
2013-01-22 12:10
xhl124
Rank: 1
等 级:新手上路
帖 子:5
专家分:1
注 册:2013-1-20
收藏
得分:0 
回复 2楼 yuccn
我是新手,求大神详细指教
2013-01-22 16:29
xhl124
Rank: 1
等 级:新手上路
帖 子:5
专家分:1
注 册:2013-1-20
收藏
得分:0 
回复 3楼 锋了
用else的话逻辑上是行得通的呀!
2013-01-22 16:30
快速回复:一个简单的字符加密程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025525 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved