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

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

 1 /*
 2 2018年9月13日21:24:48
 3
 4 实现输入密码时候不显示明文
 5
 6 */
 7
 8
 9 #include <iostream>
10
11 #include <string>
12 #include <conio.h>
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 << "debug:" << ret << endl;
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 :"<< password << endl;
73     return 0;
74 }

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

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

时间: 2024-10-02 10:15:49

C++输入密码不显示明文的相关文章

输入密码不显示明文

import getpass _username = 'alex' _password = 'abc123' username = input("username:") password = getpass.getpass("password:") pycharm不支持,需在cmd上找到进行执行. 原文地址:https://www.cnblogs.com/liandeng/p/9579898.html

Android中EditText显示明文与密文的两种方式

效果图   布局文件 <?xml version="1.0" encoding="utf-8"?> <!-- Android中EditText显示明文与密文的两种方式 --> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/to

EditText显示明文与密码

布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

extjs 密码遮罩插件,输入密码先显示输入字符,然后变为*,以插件形式

2294508843qq extjs 密码遮罩插件,输入密码先显示输入字符,然后变为*,以插件形式

Qt---实现在QLineEdit中输入密码时先显示明文,然后显示*号

如题: //==>QPasswordLineEdit.h #ifndef QPASSWORDLINEEDIT_H #define QPASSWORDLINEEDIT_H #include <QLineEdit> class QPasswordLineEdit : public QLineEdit { Q_OBJECT public: QPasswordLineEdit(QWidget *parent,int timeout = 300); ~QPasswordLineEdit(); pr

Android 输入密码 隐藏显示输入的字符串

首先是xml布局的设计 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" androi

Android输入密码时显示与隐藏

在登录或者注册的时候,有些软件中,需求要求密码可以查看和隐藏,其实实现起来也很简单. 首先定义布局: <LinearLayout android:layout_width="fill_parent" android:layout_height="50.0dip" android:layout_marginLeft="15dip" android:layout_marginRight="15dip" android:bac

密码明文密文切换

需求: 输入框一旦有值,即显示删除图标:点击切换明密文按钮,可以切换     布局: <RelativeLayout android:layout_width="match_parent" android:layout_height="?attr/actionBarSize"> <EditText android:id="@+id/login_pwd" android:layout_width="match_paren

JQuery实现密码有短暂的显示过程和实现input hint效果

目录: 一.实现目的 二.问题思考 三.解决办法 1.输入用户名 2.输入密码短暂显示 一.实现目的 这几天做项目的时候,客户要求在文本框输入密码的时候,要求密码有短暂的显示过程,如下图: 二.问题思考 首先解决的是如何在input框里实现类似于android中hint属性,html5中添加placeholder,但是现在不是html5,怎么办? 三.解决办法 1.输入用户名 <li> <input name="textfield" type="text&q