如题所述
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
void password(char *pass)
{ char password[20],inletter=NULL;
int i=0;
clrscr();
gotoxy(17,6);
printf("\n\t\tInput your password:");
while((i<20)&&(inletter!='\r'))
{ inletter=getch(); /*æ åæ¾è¾å ¥*/
if(inletter==8)
{ if(i>0)
{password[--i]=NULL;
putchar(8); /*éæ ¼é®*/
putchar(' '); /*ä»¥ç©ºæ ¼ä»£æ¿*/
putchar(8);
}
else putchar(7); /*没æä»»ä½å符çéæ ¼ï¼åéè¦å*/
}
else if(inletter!='\r')
{ password[i++]=inletter; /*åªè¦ä¸æ¯éæ ¼åå车就æ¥å*/
putchar('*');
}
else
{password[i]=NULL; break; /*å¯ç è¾å ¥å®äºï¼è®°å¾å 个NULLå°åé¢*/
}
}
if(strcmp(password,pass)!=0)
{clrscr();
gotoxy(17,8);
printf("\n\t\tPassword is mistake Tow seconds to exit!");
sleep(2);exit(0);
}
else {printf("\n\t\tPassword is OK! Welcome to come!"); sleep(3);
}
}
void main(void)
{char *pass="lingdlz"; /*åå§å¯ç å¯ä»¥æ¹ä¸ºå ¶å®ç*/
password(pass); /*è°ç¨*/
}
#include "string.h"
#include "stdlib.h"
void password(char *pass)
{ char password[20],inletter=NULL;
int i=0;
clrscr();
gotoxy(17,6);
printf("\n\t\tInput your password:");
while((i<20)&&(inletter!='\r'))
{ inletter=getch(); /*æ åæ¾è¾å ¥*/
if(inletter==8)
{ if(i>0)
{password[--i]=NULL;
putchar(8); /*éæ ¼é®*/
putchar(' '); /*ä»¥ç©ºæ ¼ä»£æ¿*/
putchar(8);
}
else putchar(7); /*没æä»»ä½å符çéæ ¼ï¼åéè¦å*/
}
else if(inletter!='\r')
{ password[i++]=inletter; /*åªè¦ä¸æ¯éæ ¼åå车就æ¥å*/
putchar('*');
}
else
{password[i]=NULL; break; /*å¯ç è¾å ¥å®äºï¼è®°å¾å 个NULLå°åé¢*/
}
}
if(strcmp(password,pass)!=0)
{clrscr();
gotoxy(17,8);
printf("\n\t\tPassword is mistake Tow seconds to exit!");
sleep(2);exit(0);
}
else {printf("\n\t\tPassword is OK! Welcome to come!"); sleep(3);
}
}
void main(void)
{char *pass="lingdlz"; /*åå§å¯ç å¯ä»¥æ¹ä¸ºå ¶å®ç*/
password(pass); /*è°ç¨*/
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-11-06
需要截获输入流,简单不了。起码不可能是控制台程序。追问
不用,就是定义好正确的密码,然后通过键盘输入密码,验证密码是否正确,有三次机会。我的难题就是不能使显示屏的密码以‘*’号的形式显示出来,你能编写出一整套正确的程序么?
第2个回答 2012-11-06