密码屏蔽(输入显示为********)

时间:2017-11-10 11:33:06

标签: c++ passwords masking

我写了一个程序,从用户输入输入他的用户名和密码,但我想要的是,当用户输入他的密码时,它显示为*****而不是英文,就像我们输入密码一样的Gmail。

我在互联网上研究过,我已经成功编写了这个程序,但我无法在密码中输入任何内容。我也不完全理解我所写的代码。

class user
{
private:
   string name;
   string pass;
public:
                void mask()
{
        char c;
        for(int i=0;i<100;i++)
        {
                c=getch();
                if(c=='\r')
                        break;
                std::cout<<"*";
                pass=pass+c;
        }
}
        void getdata()
        {
                int flag=0;
                do
                {
                cout<<"Enter username: ";std::getline(std::cin,name);
                cout<<endl;
                cout<<"Enter password: ";mask();
                cout<<endl;
                 if((name=="myname")&&(pass=="tiger"))
                        {
                                cout<<"\n\nLogin successful"<<endl;
                                flag=1;
                        }
                else
                        cout<<"\n\nInvalid username or password\n\nHint:Your username and password is myname and tiger"<<endl<<endl;
        }while(flag==0);
        }
};

1 个答案:

答案 0 :(得分:0)

已经提出问题,无论这是我的实现是什么,它仅接受有效输入(数字和字母可以轻松更改)并且支持退格

AjaxOptions