代码如下
#include<stdio.h>
//功能:用*隐藏密码,可以清除输入,最终以回车结束,回显输入的密码
//密码中可以含有空格
int main()
{
char ch;
char arr[100] = { '\0' };
int i = 0;
printf("请输入密码:");
while ((ch = getch()) != '\r')
{
if (i == 99)
exit(-1);//这里设置越界暴力结束
arr[i] = ch;
if (arr[i] == 8)
{
//实现可以清除输入
if (i != 0)
{
printf("\b");
putchar(' ');
printf("\b");
i--;
}
}
else
{
if (arr[i] == '\r')
break;
printf("*");
i++;
}
}
printf("\n输入的密码是%s", arr);
return 0;
}
需要说明的是,getch()作为一个较早的函数,不会将回车处理为\n,而会将它视为原始的\r