用c语言写登录时,如何将输入的密码显示为*号

在做登录的时候,我想将我输入的密码显示为*号,该如何写呢?我自己也尝试写了一下,效果是出来了,但是不使用,有没有使用一点的方法?
最好是有代码事例!
谢谢了!
这就是我自己写的:
printf("\n\n 请输入密码:");

//密码显示为*号
char pwd;
int zu=0;
while(pwd!=13)
{
pwd=getch();
if (pwd==13)
{
zuce.Pwd[zu]='\0';
break;
}else
{
if(pwd==8)
{
zuce.Pwd[zu-1]='\0';
// continue;
}else
{
zuce.Pwd[zu]=pwd;
zu++;
printf("*");
}
}
}
这个代码写出来后效果是可以出来,但是一点都不实用,*号不能删除!有没有跟简单一点的方法或者是函数?

要删除*号的话,稍微改一下if(pwd==8)的处理,比如:
if(pwd==8)
{
if (zu > 0)
{
zuce.Pwd[zu-1]='\0';
zu--;
printf("%c",(char)8);
printf(" ");
printf("%c",(char)8);
}
// continue;
}else
用C的话密码可能差不多就这样处理吧,当然你的程式还需要改进一下,比如如果输入的超过数组的容量就skip掉,避免内存溢出。还有对一些无效的字符比如箭头按键,tab键等都skip掉,也就是限制合法字符的范围。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-10-23
输密码的时候用getche()函数
该函数不回显输入的数据
也就是说从键盘上输入的数据不显示这屏幕上
然后你用printf("*");
while(psw[i++]=getche()){
if(psw[i-1]=='\n'){psw[i-1]='\0';break;}
printf("*");
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网