标题:C语言中文件输入输出的问题
取消只看楼主
我是胖子
Rank: 1
等 级:新手上路
帖 子:20
专家分:4
注 册:2013-5-12
结帖率:60%
已结贴  问题点数:20 回复次数:4 
C语言中文件输入输出的问题
我设计了一个程序有一个功能就是密码验证,默认为admin,但是在第一次登陆的时候,总是不能在新建的password中写入admin,表现为写入的时候直接退出程序,求大神们解释

# include <stdio.h>
# include <windows.h>
# include <stdlib.h>
# include <string.h>

void InformationSearch();
void BackStage();
bool Login();

void main()//主函数登陆
{
    printf("--------请输入登陆状态-------\n");
    printf("1.游客登录\n");
    printf("2.管理员登陆\n");
   
    int i;
    scanf("%d", &i);
    switch(i)
    {
    case 1:
        {
            system("cls");
            Sleep(800);
            InformationSearch();break;
        }
    case 2:
        {
            system("cls");
            Sleep(800);
            BackStage();break;
        }
    }
}

void InformationSearch()//信息查询系统
{

}

void BackStage()//后台系统
{
    if(Login())
    {
        return;
    }

    printf("--------欢迎登陆图书后台管理系统--------\n");
    printf("1.初始化 所有信息\n");
    printf("2.添加 图书信息\n");
    printf("3.修改 图书信息\n");
    printf("4.删除 图书信息\n");
    printf("5.查询/查看 图书信息\n");
    printf("6.建议查看\n");
    printf("7.管理员密码修改\n");
}

bool Login()//打开保存密码的文件,并验证
{
    FILE * fp;
    int i, count;
    char filename[] = "password";
    char c, ch[] = "admin";
    char stringIn[10];
    char stringOut[10];
   
    if((fp=fopen(filename, "rb+"))==NULL)
    {
        printf("这是您首次使用本系统\n默认密码为admin\n");
        fp = fopen(filename, "wb+")
        fprintf(fp, "admin");
    }

    fscanf(fp, "%s", stringOut);
    printf("请输入密码: ");
    scanf("%s", stringIn);

    count = strcmp(stringIn, stringOut);

    if(count==0)
        return false;
    else
        return true;
}
搜索更多相关主题的帖子: void password include 管理员 
2013-05-12 01:22
我是胖子
Rank: 1
等 级:新手上路
帖 子:20
专家分:4
注 册:2013-5-12
得分:0 
回复 4楼 azzbcc
高手,
    if((fp=fopen(filename, "rb+"))==NULL)
    {
        printf("这是您首次使用本系统\n默认密码为admin\n");
        fp=fopen(filename, "wb+");
        fprintf(fp, "admin");
        fclose(fp);
    }

你的代码很对,但是我不懂,我的代码加上fclose后,的确可以验证密码了  而且我也在生成的password中看见密码了,但是我输入admin 还是不能进入后台管理这是为啥?
还有为啥fclose(fp)以后就能fscanf了?
2013-05-12 08:16
我是胖子
Rank: 1
等 级:新手上路
帖 子:20
专家分:4
注 册:2013-5-12
得分:0 
回复 7楼 yyqd2013
setvbuf(fp, NULL, _IONBF, 0);

这句是干啥用的?
2013-05-12 10:30
我是胖子
Rank: 1
等 级:新手上路
帖 子:20
专家分:4
注 册:2013-5-12
得分:0 
回复 2楼 azzbcc
我QQ544324974

能不能加我下~~~
2013-05-15 22:34
我是胖子
Rank: 1
等 级:新手上路
帖 子:20
专家分:4
注 册:2013-5-12
得分:0 
回复 11楼 azzbcc
给个邮箱吧      能找到个很懂的人真心不容易啊
2013-05-15 23:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-406857-1-1.html




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

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