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;
}
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐