这是我在做课程设计时遇到的问题,如何在管理员进入系统时输入密码不会显示出来而泄露信息,这里使用到C语言函数库
#include <conio.h>
里面有一个输入函数 getch();这个函数跟getchar();功能几乎一样,不同点就是使用getch()输入字符时不会在控制台显示出来,所以正是利用这一点来隐藏密码的。
但要注意的是:它会吧键盘上所有按键都录入,包括撤销Backspace;而Backspace的ASIIC码值是8;所以只要加个判断即可解决!下面看代码:
printf("请输入管理员账号,密码:回车键结束\n");
printf("账号:");scanf("%s",id);
printf("密码:");
while((ch=getch())!='\r')
{
if(ch!=8)//不是回撤就录入
{
s[i]=ch;
putchar('*');//并且输出*号
i++;
}