day1-IO

/*******************************************统计文件行数和字数**********************************/

#include <myhead.h>   
void hang(char *p)//统计行数
{
    FILE *fp;
    if((fp=fopen(p,"r"))==NULL)
    {
        perror("fopen error");
        return ;
    }
    char buf;
    int count =0;
    while((buf=fgetc(fp))!=EOF)
    {
        if(buf=='\n')
        {
            count++;
        }
    }
    fclose(fp);
    printf("文件有%d行\n",count);
}

void all(char *p)//统计字数
{
    FILE *fp;
    if((fp=fopen(p,"r"))==NULL)
    {
        perror("fopen error");
        return ;
    }
    char buf;
    int count =0;
    while((buf=fgetc(fp))!=EOF)
    {
            count++;
    }
    fclose(fp);
    printf("文件大小为%d\n",count);
}

int main(int argc,char *argv[])
{
    if(argc != 2)
    {
        printf("输入有误\n");
        return -1;
    }
    char *p = argv[1];
    all(p);
    hang(p);
    return 0;
}

 /*******************************************注册登陆功能***************************************/

#include <myhead.h>

void regist()
{
    char zczh[128];
    char zcmm[128];
    printf("输入账号:");
    scanf("%s",zczh);
    printf("输入密码:");
    scanf("%s",zcmm);
    
    FILE *fp;
    if((fp=fopen("./password.txt","a"))==NULL)
    {
        perror("fopen error");
        return ;
    }
    //存入文件
    fprintf(fp,"%s %s\n",zczh,zcmm);
    fclose(fp);
    printf("注册成功\n");

}
void login()
{
    char dlzh[128];
    char dlmm[128];
    printf("账号:");
    scanf("%s",dlzh);
    while(getchar()!=10);
    printf("密码:");
    scanf("%s",dlmm);
    while(getchar()!=10);

    //进行匹配
    char username[128];
    char passwd[128];

    FILE *fp;
    if((fp=fopen("./password.txt","r"))==NULL)
    {
        perror("fopen error");
        return ;
    }

    //读取数据
    while(1)
    {
        fscanf(fp,"%s %s",username,passwd);
        if(strcmp(username,dlzh)!=0)
        {
            printf("没有该用户\n");
            return ;
        }
        else if(strcmp(username,dlzh)==0&&strcmp(passwd,dlmm)!=0)
        {
            printf("密码错误\n");
            return ;
        }
        else if(strcmp(username,dlzh)==0&&strcmp(passwd,dlmm)==0)
        {
            printf("登录成功\n");
            return ;
        }
    }
}

int main(int argc, const char *argv[])
{
    while(1)
    {
        printf("-----1.注册-----\n");
        printf("-----2.登录-----\n");
        printf("-----3.退出-----\n");
        printf("输入功能:");
        int menu;
        scanf("%d",&menu);
        while(getchar()!=10);
        switch(menu)
        {
        case 1:
            regist();
            break;
        case 2:
            login();
            break;
        case 3:
            exit(0);
            break;
        default:
            printf("输入有误\n");
            break;
        }
    }
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值