一个只能用在Win下的密码验证函数(显示星号,可删除)-创新互联

以前做小程序时图好玩在网上找的代码。输入的密码会以星号显示出来,并且输入错了可以删除。因为用了专有库函数,所以只能在Windows平台使用,少用为好,不过可能还有点用。嗯…就这样了一个只能用在Win下的密码验证函
数(显示星号,可删除)
#include 
 
#include
 
#include
 
#define  MAX_PASSLEN 128   //定义密码长度 
char tpass[20]="admin";
 
void GetPassword(char *szFinalPass)
 
{
 
char chValue,szPassword[MAX_PASSLEN];
 
int iCounter = 0;  //定义计数器 
  while ( 1 )
 
    {
 
if( ( chValue = getch() ) != '' )  //如果输入的不是回车 
        {
 
if( chValue != '' )   //如果输入的不是退格 
            {
 
if ( iCounter < MAX_PASSLEN ) //如果长度并未超过密码的大长度 
                {
 
                    szPassword[iCounter]= chValue;
 
                    putchar('*' );  //在屏幕上显示星号 
                    iCounter++;
 
                }
 
else
 
                {
 
                    putchar('7' );   //如果密码已经超过大长度,则响铃报警 
                }
 
            }
 
else
 
            {
 
if( iCounter != 0 )  //如果按了退格,并且当前不是第一个字符 
                {
 
                    iCounter--;
 
                    printf(" " ); //注意两个之间是有个空格的,含义是先退格,
 
//然后打印空白字符将之前的字符覆盖掉,然后再退格使光标退回 
                }
 
            }
 
        }
 
else
 
        {
 
            szPassword[iCounter]= 0;  //密码输入结束时将末尾以结尾! 
 break;
 
        }
 
    }
 
    strcpy( szFinalPass ,szPassword );//最终将密码复制出来 
}
 
int main()
 
{
 
char szPassword[128];
 
    GetPassword(szPassword);
 
if(strcmp(szPassword,tpass)==0)
        printf("
输入的密码是:%s
",szPassword);
 
else
        printf("
密码错误
");
}

名称栏目:一个只能用在Win下的密码验证函数(显示星号,可删除)-创新互联
分享链接:http://myzitong.com/article/jepoh.html