C++输入密码不显示明文

2021-06-30 05:07

阅读:730

标签:getpass   输入   遇到   password   int   问题   clu   ima   getc   

之前有遇到需求说输入密码不显示明文,但同时会有一些其他问题,暂时没做,如今经过尝试可以实现,但是得先知道要输入的是密码。主要利用的getch()函数的不回显特点。需要注意的是这个函数不是标准函数,而且使用VS2013有提示换成_getch()。具体代码以及效果如下:

 1 /*
 2 2018年9月13日21:24:48
 3 
 4 实现输入密码时候不显示明文
 5 
 6 */
 7 
 8 
 9 #include 10 
11 #include string>
12 #include 13 using namespace std;
14 
15 //https://zhidao.baidu.com/question/235215029.html
16 string getpasswordwithoutplaindata()
17 {
18     string ret;
19     char ch;
20     ch = _getch();
21     while (ch != \n && ch != \r)
22     {
23         ret += ch;
24         //cout 
25         ch = _getch();
26     }
27 
28     return ret;
29 
30 }
31 
32 string getpasswordwithstar()
33 {
34     string ret;
35     char ch;
36     ch = _getch();
37     while (ch != \n && ch != \r)
38     {
39         _putch(*);
40         ret += ch;
41         ch = _getch();
42     }
43 
44     return ret;
45 
46 }
47 
48 
49 string getpasswordanotherchar(char rch)
50 {
51     string ret;
52     char ch;
53     ch = _getch();
54     while (ch != \n && ch != \r)
55     {
56         _putch(rch);
57         ret += ch;
58         ch = _getch();
59     }
60 
61     return ret;
62 
63 }
64 
65 int main()
66 {
67     string password;
68     cout "input your password:"  endl;
69     //password = getpasswordwithoutplaindata();
70     //password = getpasswordwithstar();
71     password = getpasswordanotherchar(+);
72     cout "\nThe password you input is :" endl;
73     return 0;
74 }


功能是输入字符不显示或者显示其他字符,按下回车或结束输入,并且将刚才输入的密码显示出来。不同效果如下:

技术分享图片

 

技术分享图片

 

技术分享图片

 

C++输入密码不显示明文

标签:getpass   输入   遇到   password   int   问题   clu   ima   getc   

原文地址:https://www.cnblogs.com/youdias/p/9643456.html


评论


亲,登录后才可以留言!