c语言密码验证程序,要求输入密码是显示星号

 我来答
团长你好吗
推荐于2017-09-21 · TA获得超过597个赞
知道小有建树答主
回答量:422
采纳率:20%
帮助的人:128万
展开全部

C语言中可采用getch()函数来实现输入密码字符时,不显示字符到终端上,这时,只需要显示出一个相应的*就可以达到效果了。参考代码及运行效果如下图:

金色潜鸟
2015-03-10 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5692万
展开全部
下面程序示意如何输入和验证passwd.
假定已知蜜码 是1234,存在 char password[50] 里。
输入和验证。

#include <stdio.h>
#include <stdlib.h>
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;
}
追问
while(putchar!=13)这样是不是好一点
追答
这个程序允许打入1个字符,显示一个星,允许回退删除打错的字符重打操作,回退一格删除一个星,允许中间暂停一会再接着打,收到换行开始检查是否输入正确。比你选择的答案更符合实用情况。

你选择的答案 scanf("%s",a); 会在屏幕上显示拍入的蜜码。这是完全错误的输入密码的方法。我的方法只显示星号,看不见拍入的字符,是正确的输入方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaojunyu
2015-03-10
知道答主
回答量:21
采纳率:0%
帮助的人:10.7万
展开全部
这个只靠标准库是不行的,scanf函数是交互的,输入必须回显的。别的库,比如linux的curses.h图形库,就可以关闭回显,这个时候只需要读取,然后屏幕显示*即可
更多追问追答
追问
我只要c语言的标准库的,好像可以用getchar
#include
void main()
{
char a[10],i,password[10]="1234",j=1;
prinf("输入密码:\n");
while(j)
{scanf("%S",a);
for(i=0;a[i]!='\0';i++)
printf("*");
if(strcmp(password,a)==0)
{printf("通过\n");j=0;相应其他操作;}
else Printf("密码错误!重新输入!\n);
}
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式