前辈们帮帮忙 ‘*’回显
利用数组实现一个用户登录程序,现要求输入用户名(3次有效),接着输入密码(3次有效,要求“*”回显)登陆成功则输出欢迎语,否则告知出错,并退出系统。
----------------解决方案--------------------------------------------------------
作业吧?自己写...
----------------解决方案--------------------------------------------------------
getch() 可以读取用户输入什么都不显示,同时你putchar('*')就是你要的效果了
----------------解决方案--------------------------------------------------------
//献丑程序,有问题的,提供个自己想法,也没调试
int i=0, count=3;
char chr[MAX],ch;
char password[]="123\0";
.L1:
while((ch=getch())!='\r')
{
putchar('*');
chr[i]=ch;
if(strcmp(password,chr) == 0)
goto exec;
else{
count--;
if(count==0)
err_exit(0);//自己写个出错退出函数
goto .L1;
}
}
exec:
//初学者,没调试程序,一般思路
[[it] 本帖最后由 c_acceleration 于 2008-4-28 12:38 编辑 [/it]]
----------------解决方案--------------------------------------------------------
以下程序 密码用‘*’回显
谢谢各位了!getch()函数没学过,怎么用呢!下面是我写的程序,不会回显,帮忙修改一下吧!
#include<stdio.h>
#include<string.h>
void main()
{
int i=0,j=0,k=0,z=0,n=0;
char name1[10],name2[6]="happy",s1[10],s2[4]="abc";
printf("please input your name:");
gets(name1);
while(strcmp(name1,name2)!=0&&j<=1)
{
printf("input again:");
gets(name1);
j++;
}
if(strcmp(name1,name2)!=0)
printf("over");
else
{
printf("please input your password:");
while((s1[i]=getchar())!='\n')
{ putchar('*');
i++;
}
s1[i]='\0';
while(strcmp(s1,s2)!=0&&z<=1)
{n=0;
printf("input again:");
while((s1[n]=getchar())!='\n')
{
putchar('*');
n++;
}
s1[n]='\0';
z++;
}
if(strcmp(s1,s2)==0)
printf("pass");
else
printf("fail");
}
}
----------------解决方案--------------------------------------------------------
确实是作业
刚接触C还不到半年,所以好多函数还不了解,所以请大家多多帮助了...... ----------------解决方案--------------------------------------------------------
谢谢了
谢谢各位的提醒,调试出来了!#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
int i=0,j=0,k=0,z=0,n=0;
char name1[10],name2[6]="happy",s1[10],s2[4]="abc";
printf("please input your name:");
gets(name1);
while(strcmp(name1,name2)!=0&&j<=1)
{
printf("input again:");
gets(name1);
j++;
}
if(strcmp(name1,name2)!=0)
printf("over");
else
{
printf("please input your password:");
while((s1[i]=getch())!='\r')
{ putchar('*');
i++;
}
s1[i]='\0';
while(strcmp(s1,s2)!=0&&z<=1)
{n=0;
printf("input again:");
while((s1[n]=getch())!='\r')
{
putchar('*');
n++;
}
s1[n]='\0';
z++;
}
if(strcmp(s1,s2)==0)
printf("pass");
else
printf("fail");
}
}
----------------解决方案--------------------------------------------------------