c++隐藏密码的输入
现实问题:在输入密码或者账号的时候,不希望别人看到自己的信息,因此需要隐藏输入的信息
怎样隐藏输入呢?
步骤1:包含头文件如和<conio.h>(在Windows环境下)。
#include <iostream>
#include <conio.h>
步骤2:创建一个字符数组来存储密码。
char pwd[20];
步骤3:创建一个字符变量接收输入的字符
char c;
步骤4:在无限循环中接受输入的字符
while (1) {
c = _getch();
if (c == '\r') {//输入的字符为回车键时,识别为回车符'\r'
pwd[i] = 0;//'\0'结束符
break;
}
pwd[i++] = c;//将读取到的值赋给pwd
std::cout << "*";//输出*遮挡密码
}
getch()不会回显
完整代码:
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <conio.h>
void input_word(char pwd[], int size) {
char c;
int i = 0;
while (1) {
c = _getch();
if (c == '\r') {
pwd[i] = 0;
break;
}
pwd[i++] = c;
std::cout << "*";
}
}
int main()
{
char pwd[20];
input_word(pwd, sizeof(pwd));
return 0;
}