当前位置: 代码迷 >> C语言 >> 前辈们帮帮忙 ‘*’回显
  详细解决方案

前辈们帮帮忙 ‘*’回显

热度:199   发布时间:2008-04-28 11:53:02.0
前辈们帮帮忙 ‘*’回显
利用数组实现一个用户登录程序,现要求输入用户名(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");
        
     }
}
----------------解决方案--------------------------------------------------------
  相关解决方案