C语言中可采用getch()函数来实现输入密码字符时,不显示字符到终端上,这时,只需要显示出一个相应的*就可以达到效果了。参考代码及运行效果如下图:
下面程序示意如何输入和验证passwd.
假定已知蜜码 是1234,存在 char password[50] 里。
输入和验证。
#include
#include
int main()
{
char p[50];
char password[50]="1234";
int i=0;
printf("type your password:\n");
while ( i < 50 ){
p[i] = getch();
if (p[i] == '\r') break;
if (p[i] == '\b') { i=i-1; printf("\b \b"); } else {i=i+1;printf("*");};
}
p[i]='\0';
if ( strcmp(password,p)==0) printf("\nThe passwd is right!\n");
else printf("\n You typed wrong password:%s",p);
return 0;
}
这个只靠标准库是不行的,scanf函数是交互的,输入必须回显的。别的库,比如linux的curses.h图形库,就可以关闭回显,这个时候只需要读取,然后屏幕显示*即可