C语言实现密码输入

来源:互联网 发布:大数据最好的培训机构 编辑:程序博客网 时间:2024/06/09 22:46
/*==============================
密码输入
*=============================*/
#include<stdio.h>
#include <string.h>
#include<conio.h>
void main()
{
char ps[8]; //最多支持7位数密码
int i=0;
printf("password=");

for(i=0;i<8;i++)
{
ps[i]=getch();//从测试结果看,并没有删除当前i-1所在的内容,只是实现光标的前移,并且将Backspace键索代表的ASCII值写入i的位置中
// printf(" %X",TmpS.ps[i]);
if(ps[i]==0x08)
{
putch(8); //光标从当前往前移动一位,

putch(' '); //覆盖原显示值并输出空,然后往后移动一位(***<>  --> **_<*>   <>表示光标所在位置,_表示输出空)

putch(8); // (**_<*>  --> **<> )上三行只是实现视觉效果而已

i=i-2; //问题:这里为什么一定是i-2;  而i-1却不能实现覆盖掉想要删除的数(此时的删除为视觉上的,即有个数消失了),这里有点不懂,i-2是试出来的

continue;
}


if(ps[i]==13) 
{
ps[i]='\0';
break;
}

// printf("%c",TmpS.ps[i]);
if(i==7) break;
putch('*');
}

ps[7]='\0';
printf("\ni=i-2 数组元素个数=%d",strlen(ps));

printf("\npassword:%s",ps);   //测试用的
getch();

}

0 0