| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 974 人关注过本帖, 2 人收藏
标题:密码设置问题,大家来帮帮忙!
只看楼主 加入收藏
limingzhen90
Rank: 2
等 级:论坛游民
帖 子:53
专家分:72
注 册:2010-12-31
结帖率:100%
收藏(2)
已结贴  问题点数:20 回复次数:10 
密码设置问题,大家来帮帮忙!
我是新手,哈哈,
问题是这样的,我的密码要求:当我想设置密码为123,但是我想当输入1时,屏幕显示的是*,当输入2时,屏幕显示的是*.。。。还有的就是,怎么比较两次输入的密码输入一致?大家给点具体的,不过给思想也可以的,谢谢
搜索更多相关主题的帖子: 密码 
2011-02-12 20:58
cacker
该用户已被删除
收藏
得分:10 
提示: 作者被禁止或删除 内容自动屏蔽
2011-02-12 21:22
limingzhen90
Rank: 2
等 级:论坛游民
帖 子:53
专家分:72
注 册:2010-12-31
收藏
得分:0 
回复 2楼 cacker
我不会用putc("*");这个,能在说说吗?

入门了吗?
2011-02-12 21:31
pcbaichi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:486
专家分:1185
注 册:2010-11-13
收藏
得分:5 
回复 3楼 limingzhen90
给你个事例,匆忙写的,可能不好
#include<stdio.h>
#include<string.h>
#include<conio.h>
int main(void)
{
    char ch;
    int i=0,len;
    char password[5]={"12345"};
    len=strlen(password);
    for(ch=getch(); ch!=13;ch= getch())
    {
        if (i>=len)
            continue;
        
        if(ch == '\b')
        {
            if(i>0)
            {
                printf("\b");
                password[--i]='\0';
            }
            putchar(0);
            printf("\b");
            continue;
        }
        printf("*");
        password[i++]=ch;
    }
    password[i]='\0';   
}
收到的鲜花
  • huangapple2011-02-12 22:45 送鲜花  10朵  

免费赠送河蟹一只
2011-02-12 22:12
huangapple
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:545
专家分:1790
注 册:2010-12-30
收藏
得分:0 
楼上有个小错误 char password[5]={"12345"};
这样数组不够了
收到的鲜花
  • pcbaichi2011-02-13 11:16 送鲜花  5朵   附言:感谢喽~~~

勤能补拙,熟能生巧!
2011-02-12 22:47
huangapple
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:545
专家分:1790
注 册:2010-12-30
收藏
得分:0 
还忘了return了

勤能补拙,熟能生巧!
2011-02-12 22:49
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<string.h>
#include<conio.h>

int main(void)
{
    char ch;
    int i=0,len;
    char password[]="12345";

    len=strlen(password);
    for(ch=getch(); ch!=13;ch= getch())
    {
       
        if(ch == '\b')   //退格键
        {
            if(i>0)
            {
                printf("\b");
                password[--i]='\0';
            }
            putchar(0);
            printf("\b");
            continue;
        }

        if (i>=len)
       {
           printf("\b");
           printf("*");
            continue;
       }
       
          if(i)
          {
            printf("\b");
            printf("*");
          }
          if(i+1 < len)
            putchar(ch);
          else
            printf("*");

        password[i++]=ch;
    }
    password[i]='\0';

    putchar('\n');
    puts(password);

    getchar();
    return 1;
}
根据4楼,试一试这个程序效果如何

小代码,大智慧
2011-02-13 00:24
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
收藏
得分:5 
程序代码:
#include<stdio.h>
#include<string.h>
#include<conio.h>

void keystring(char *password,const int N)
{
    char ch;
    int i=0;

    for(ch=getch(); ch!=13||i<N/2;ch= getch())  //输入存在某些BUG
    {
       
        if(ch == '\b')   //退格键
        {
            if(i>0)
            {
                printf("\b");
                password[--i]='\0';
            }
            putchar(0);
            printf("\b");
            continue;
        }

        if(ch == 13)  
        {
            if(i<N/2)
            {
                printf("\n设置位数不够,输入密码在6位至12位之间,回车作为确定\n");
                i=0;
                continue;
            }
        }

        if (i>=N)
       {
           printf("\b");
           printf("*");
            continue;
       }
       
          if(i)     //令前面变为*
          {
            printf("\b");
            printf("*");
          }
            putchar(ch);

          if(i<N)    //起保护
        password[i++]=ch;
    }

    printf("\b");
    printf("*");

    password[i]='\0';

    putchar('\n');
}

int main(void)
{
    const int N=12;
    char password[N+1],passwordTwo[N+1];
    int change=3;

    puts("输入密码在6位至12位之间,回车作为确定");
    keystring(password,N);

    do{

       printf("输入第二次密码,有%d次机会\n",change);
       keystring(passwordTwo,N);
       if(strcmp(password,passwordTwo))
       {
        printf("\n密码错误\n");
        --change;
       }
       else
       {
        printf("\n密码正确\n%s\n",passwordTwo);
        change=0;
       }
    }while(change);

        getchar();
    return 1;
}
相对完整版,
不过程序还是有些BUG,例如输入tab键会不正常显示,等等。

小代码,大智慧
2011-02-13 11:13
Rememberxl
Rank: 1
等 级:新手上路
帖 子:13
专家分:9
注 册:2011-2-11
收藏
得分:0 
大神真多!
2011-02-13 13:48
limingzhen90
Rank: 2
等 级:论坛游民
帖 子:53
专家分:72
注 册:2010-12-31
收藏
得分:0 
回复 8楼 点线面
那我想问下,怎么处理密码问题,自己申请一个账号和密码,怎么写才能认证两次输入的密码一样??

入门了吗?
2011-02-14 15:42
快速回复:密码设置问题,大家来帮帮忙!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040351 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved