c语言密码验证程序,要求输入密码是显示星号
3个回答
展开全部
下面程序示意如何输入和验证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;
}
假定已知蜜码 是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); 会在屏幕上显示拍入的蜜码。这是完全错误的输入密码的方法。我的方法只显示星号,看不见拍入的字符,是正确的输入方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个只靠标准库是不行的,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);
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询