| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1015 人关注过本帖
标题:密码输入的效验
只看楼主 加入收藏
伍则帝
Rank: 3Rank: 3
来 自:四川省南充市高坪区
等 级:论坛游民
威 望:6
帖 子:100
专家分:34
注 册:2013-3-16
结帖率:84%
收藏
 问题点数:0 回复次数:13 
密码输入的效验
#include <stdio.h>
#define TRUE 1
#define FLASE 0
#define PWD 123456
void main()
{
    long pwd;
    int count=0,flag=FLASE;
    do
    {
        printf("请输入密码:");
        scanf("%d",&pwd);
        count++;
        if (pwd==PWD)    flag=TRUE;
    }
    while (count<3 && flag==FLASE);
    if (flag)
        printf("登录成功\n");
    else
        printf("密码错误\n");
}
为什么密码错误时就直接3次循环完呢?那位给解释下?
搜索更多相关主题的帖子: 输入密码 密码 include count 
2013-03-26 15:33
zhangfudong
Rank: 4
等 级:业余侠客
帖 子:119
专家分:212
注 册:2012-12-12
收藏
得分:0 
你这个代码的意思是有三次输入机会,三次都错误就跳出循环输出“密码错误”,如果输入的是123456就输出“登陆成功”
2013-03-26 15:46
伍则帝
Rank: 3Rank: 3
来 自:四川省南充市高坪区
等 级:论坛游民
威 望:6
帖 子:100
专家分:34
注 册:2013-3-16
收藏
得分:0 
是呀,可是我输入的ffj时
它却显示为
      请输入密码:ffj
      请输入密码:请输入密码:密码错误
      press any key to continue
2013-03-26 15:57
X1AO
Rank: 3Rank: 3
来 自:北京邮电大学
等 级:论坛游侠
威 望:1
帖 子:52
专家分:123
注 册:2013-3-6
收藏
得分:0 
程序代码:
#include <stdio.h>
#include<string.h>
#define TRUE 1
#define FLASE 0
#define PWD "12345"
void main()
{ 
    char pwd[50];
    int count=0,flag=FLASE;
    do
    {
        printf("请输入密码:");
        scanf("%s",pwd);
        count++;
        if (strcmp(pwd,PWD) == 0)    flag=TRUE;
    }
    while (count<3 && flag==FLASE);
    if (flag)
       printf("登录成功\n");
    else
       printf("密码错误\n");
}

可以了。

不要问我下课干什么,我陪瓜哥上厕所。
2013-03-26 16:56
LLC_HJW
Rank: 2
等 级:论坛游民
帖 子:58
专家分:39
注 册:2013-1-11
收藏
得分:0 
把简单的程序做的太复杂了
2013-03-26 16:58
LLC_HJW
Rank: 2
等 级:论坛游民
帖 子:58
专家分:39
注 册:2013-1-11
收藏
得分:0 
C语言不能这么用,浪费
2013-03-26 16:59
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
还是少了个清空键盘输入区缓存的函数。你在do 后面加一个fflush(stdin);就实现你的目的了

认为事物非黑即白是缺智慧的表现……
2013-03-26 17:00
lhl1106
Rank: 2
等 级:论坛游民
帖 子:15
专家分:24
注 册:2012-12-17
收藏
得分:0 
程序代码:
#include <stdio.h>
#include<string.h>
#define TRUE 1
#define FLASE 0
#define PWD "12345"
void main()
{
    char pwd[50];
    int flag=FLASE;
        printf("请输入密码:");
        scanf("%s",pwd);
        if (strcmp(pwd,PWD) == 0)    flag=TRUE;

        {
          if (flag)
              printf("登录成功\n");
         else
             printf("密码错误\n");
        }
}
楼主 这个就是正确的哦 你试试
2013-03-26 20:45
伍则帝
Rank: 3Rank: 3
来 自:四川省南充市高坪区
等 级:论坛游民
威 望:6
帖 子:100
专家分:34
注 册:2013-3-16
收藏
得分:0 
恩,我试下
2013-03-26 21:46
伍则帝
Rank: 3Rank: 3
来 自:四川省南充市高坪区
等 级:论坛游民
威 望:6
帖 子:100
专家分:34
注 册:2013-3-16
收藏
得分:0 
我试了的了,可是问题更多了?
首先是 scanf("%s",pwd);为什么pwd前加不加&都能输出
还有#define PWD "12345"不是把密码设成了12345吗?为什么我要输入123456才对呀?
其次是 (strcmp(pwd,PWD) == 0) 是什么意思?
最后,7楼说加什么呀,代码不清楚嗫!
还有呀,我发觉我的和你们的都一样,当输入的是数字时都正常;但只要输入字母时就出错了,
不知道各位知道原因不?

2013-03-26 22:06
快速回复:密码输入的效验
数据加载中...
 
   



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

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