| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 515 人关注过本帖
标题:求指教??
只看楼主 加入收藏
xp0213
Rank: 7Rank: 7Rank: 7
来 自:湖北武汉
等 级:黑侠
威 望:1
帖 子:210
专家分:522
注 册:2011-10-26
结帖率:86.67%
收藏
已结贴  问题点数:15 回复次数:4 
求指教??
#include<stdio.h>
struct stu
{
    char username[20];  
    char password[15];
    char name[20];     
    char sex[5];        
    char pin[10];   
}

main()
{
    int i,fleg;
    FILE*fp;
    struct stu student[100];
    struct stu studentTest;
    fp=fopen("in.txt","r");
    for(i=0;i<5;i++)
    {
        fscanf(fp,"%s%s%s%s%s",student[i].username,student[i].password,student[i].name,student[i].sex,student[i].pin);
    }
    fclose(fp);
    fleg=1;
    do{
       printf("请输入用户名:");
       scanf("%s",&studentTest.username);
                           
       printf("请输入密码:");
                           
       scanf("%s",&studentTest.password);
        for(i=0;i<5;i++)
         {
            if(strcmp(student[i].username,studentTest.username)==0 && strcmp(student[i].password,studentTest.password)==0)
               
                {
                    printf("登录成功!\n");fleg=0;break;
                }
            else
                {
                  printf("您的用户名或密码不正确!\n"); fleg=1;break;
                }
            
        }
        }while(fleg);
        
}
   
当我输入第一个时,显示是对的,如:

 
图片附件: 游客没有浏览图片的权限,请 登录注册



当我输入最后一个时,如:

 
图片附件: 游客没有浏览图片的权限,请 登录注册



我的文件内容为:

 
图片附件: 游客没有浏览图片的权限,请 登录注册



请问这是怎么回事?
搜索更多相关主题的帖子: 用户名 include password 
2012-06-10 20:32
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
收藏
得分:2 
最后一行的空格多了,在Acire后面只留一个空格
2012-06-10 20:34
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
收藏
得分:0 
问题如果解决了,请把分加上,如果没有解决,那把新问题发上来我们继续讨论。
2012-06-11 11:41
Kid_X
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:216
专家分:515
注 册:2007-10-8
收藏
得分:13 
for(i=0;i<5;i++)
         {
            if(strcmp(student[i].username,studentTest.username)==0 && strcmp(student[i].password,studentTest.password)==0)
               
                {
                    printf("登录成功!\n");fleg=0;break;
                }
            else
                {
                  printf("您的用户名或密码不正确!\n"); fleg=1;break;
                }
            
        }
你根本没有判断全部用户名和密码,你只比对了第一个用户名,发现不匹配之后,直接之fleg为1并break了,此时跳出了for循环,到while判断又是false,程序直接结束了。
2012-06-11 14:12
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
收藏
得分:0 
以下是引用Kid_X在2012-6-11 14:12:17的发言:

for(i=0;i<5;i++)
         {
            if(strcmp(student.username,studentTest.username)==0 && strcmp(student.password,studentTest.password)==0)
               
                {
                    printf("登录成功!\n");fleg=0;break;
                }
            else
                {
                  printf("您的用户名或密码不正确!\n"); fleg=1;break;
                }
            
        }
你根本没有判断全部用户名和密码,你只比对了第一个用户名,发现不匹配之后,直接之fleg为1并break了,此时跳出了for循环,到while判断又是false,程序直接结束了。

有道理,程序我都没仔细看啊,惭愧。
你的i根本没机会++。
2012-06-11 17:07
快速回复:求指教??
数据加载中...
 
   



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

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