| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 421 人关注过本帖
标题:关于登录的c程序,关于文件操作的,
只看楼主 加入收藏
xp847333822
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-1-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
关于登录的c程序,关于文件操作的,
程序代码:
#include<stdio.h>
#include<string.h>
#include<iostream.h>
void main()
{
    char *user;
    char keyword[16]={'\o'};
    FILE *fp;
    printf("user:");
    user=(char *)malloc(10*sizeof(char));
    scanf("%s",user);
    if((fp=fopen(user,"r+"))==NULL)
    {
        printf("用户名错误!");
        exit (1);
    }
    printf("keyword:");
    scanf("%s",keyword);
    char keyword1[16];
    fgets(keyword1,strlen(keyword),fp);
    if(strcmp(keyword,keyword1)==0)

        printf("welcome to here!");        
    else
        printf("密码错误!");
}

确定输入的密码和打的密码相同,但是提示密码错误。求助!
搜索更多相关主题的帖子: c程序 
2012-02-27 13:40
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
收藏
得分:20 
fgets(keyword1,strlen(keyword),fp);
这个地方  改成
fgets(keyword1,strlen(keyword)+1,fp);

fgets函数
对于大小为size的buf,最多只读取size-1个字符

调试:
你在提示密码错误的地方 输出keyword和keyword1    对比下就知道了


[ 本帖最后由 icysky 于 2012-2-27 14:19 编辑 ]

不管怎么走、总有一个终点...
2012-02-27 14:15
cqm9266
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:174
专家分:186
注 册:2011-10-28
收藏
得分:0 
我在想 会不会是你输入的 密码keyword 为%s   末尾自动加了个 \0   而你读取文件里面的密码却没有  把密码改成 int型试试。

没病的人说有病的人有病,有病的人说没病的人有病。到底是谁有病?
2012-02-27 14:16
xp847333822
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-1-15
收藏
得分:0 
回复 2楼 icysky
谢谢你。却是应该输出看一下的。。
2012-02-27 14:38
快速回复:关于登录的c程序,关于文件操作的,
数据加载中...
 
   



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

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