C语言怎样设计密码以*输出的密码程序

来源:百度知道 编辑:UC知道 时间:2024/06/09 13:00:40

1.#include <stdio.h>
main()
{
char str[9]; //密码串长9为
inputPW(str,8); //有效密码长为8 最后一位要放\0 结束符的!
printf("\n密码为: %s",str);
}

inputPW(char * s,int len) //自己写的密码输入的函数
{
int i;
fflush(stdin); //清输入流 跟flushall()类似
for(i=0; ;i++)
{
s[i]=getch();
if(s[i]==13) //输入结束 不能用=='\n'来判断!!
//因为对于回车来说getchar()='\n'=10;而getch()=13 !='\n' 这个要知道!
break;
if(s[i]==8 && i>0) //如果用户按退格键 并且要有格可退时候
{
printf("\b \b"); //显示退一格
i=i-2; //输入数据退2(因为for循环体会加1 所以实际就是退了1)
continue;
}
if(i==len) {i--; continue;}
printf("*");
}
s[i]='\0'; //末尾补\0 所以该密码实际有效长度为i-1;定义有效长为len 实际定义的串长为len+1
}

2.给你个参考函数,此函数用来输入密码,输入的密码保存在字符串psd中,密码最多20位。
void intpsd(char *psd)
{int i=0; char c;
while((c=getch())!=13) /*用getch()读入的回车值为13*/