| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1479 人关注过本帖, 1 人收藏
标题:如何对实现加密的输入方式
只看楼主 加入收藏
ciweitou163
Rank: 7Rank: 7Rank: 7
来 自:河北 石家庄
等 级:黑侠
威 望:1
帖 子:144
专家分:528
注 册:2008-10-4
收藏
得分:0 
收藏了


  • 满眼生机转化钧;天工人巧日争新。
2010-05-18 19:38
yi19860699
Rank: 2
来 自:江西
等 级:论坛游民
帖 子:42
专家分:40
注 册:2009-9-3
收藏
得分:0 
#include<iostream>
#include<string>
#include<conio.h>
using namespace std;

int main()
{
    char c;
    string str;
    while((c=getch())!=13)
    {
        if(c!=8)
        {
            cout<<"*";
            str+=c;
        }
        else if(!str.empty()) //   大侠,解释一下这句的意思???
        {
                str.erase(str.end()-1);
                cout<<"\b"<<" "<<"\b";
        }
      
    }
    cout<<endl<<str<<endl;
    return 0;
}
2010-05-18 20:30
yi19860699
Rank: 2
来 自:江西
等 级:论坛游民
帖 子:42
专家分:40
注 册:2009-9-3
收藏
得分:0 
if (c!=8) 这个我也不知道什么意思
2010-05-18 20:31
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:0 
加点注释:
程序代码:
#include<iostream>
#include<string>
#include<conio.h>
using namespace std; 

int main()
{
    char c;
    string str;
    while((c=getch())!=13)
    {
        if(c!=8) //  如果按下的不是Backspace(Backspace即退格键的ASCII码为8),则输出一个*,并保存该字符。
        {
            cout<<"*"; 
            str+=c;
        }
        else if(!str.empty())  // 这里是判断储存输入的字符串str是不是为空,如果是空的话,按下Backspace就不用做任何操作了
        {
            str.erase(str.end()-1); // 如果按下的为退格键,刚删除储存的密码中的最后一个字符,
            cout<<"\b"<<" "<<"\b";  // 让显示的 * 号与密码个数保持一致。
        }
       
    }
    cout<<endl<<str<<endl;
    return 0;
}
测试一下,
程序代码:
/*  初始密码为 12345678

 *  输入密码时用*保护输入的字符

 *  支持退格键 Backspace

 *  此程序要输入正确代码才能正常能出

 *  控制台做课程设计时需要账号密码可以参考,密码可以放在某文件内(不加数据库的话),然后自己定一个规则进行加密即可。

 */

#include<iostream>
#include<string>
#include<conio.h>
using namespace std;
int main()
{
    char c;
    string str;
    string code = "12345678";
    while(true)
    {
        str = "";
        while((c=getch())!=13)
        {
            if(c!=8)
            {
                cout<<"*"; 
                str+=c;
            }
            else if(!str.empty())
            {
                str.erase(str.end()-1);
                cout<<"\b"<<" "<<"\b"; 
            }
        }
        if (str == code)
        {
            cout<< endl <<"你输入的密码为:" << str <<endl;
            cout <<endl << "恭喜你,密码正确。可以正常退出!" << endl;
            return 0;
        }
        else
        {
            cout<< endl <<"你输入的密码为:" << str <<endl;
            cout <<endl <<"不好意思,密码错误,请再次输入:" << endl;
        }
    }
    return 0;
}
2010-05-19 10:06
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
收藏
得分:0 
以下是引用lijm1989在2010-5-16 12:42:43的发言:

#include
#include
#include  
using namespace std;  
 
int main()
{
    char c;
    string str;
    while((c=getch())!=13)
    {
        if(c!=8)  
        {
            cout<<"*";
            str+=c;
        }
        else if(!str.empty())
        {
                str.erase(str.end()-1);  
                cout<<"\b"<<" "<<"\b";              //请问这里为什么要加        <<" "<<"\b"       呢?
        }
        
    }
    cout<

这句中                cout<<"\b"<<" "<<"\b";              //请问这里为什么要加        <<" "<<"\b"       呢?直接退一格不可以吗?为什么要输出一个空白再一次退格呢?
谢谢
2010-06-18 13:53
飞天猪1000
Rank: 1
等 级:新手上路
帖 子:19
专家分:6
注 册:2010-6-18
收藏
得分:0 
受教
2010-06-18 18:40
shn521
Rank: 2
等 级:论坛游民
威 望:1
帖 子:56
专家分:52
注 册:2010-6-18
收藏
得分:0 
学习了
2010-06-18 23:14
快速回复:如何对实现加密的输入方式
数据加载中...
 
   



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

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