IOday1

附加题(带注册功能的账号密码输入)

#include
#include
#include
int main(int argc, const char *argv[])
{
    char member[20]="";
    char passwd[20]="";
    char k='y';
    char end='y';

    while(end!='n')
    {
        FILE *userfp=fopen("usr.txt","r+");
        if(NULL==userfp)
        {
            perror("userfp fopen");
            return -1;
        }
        if(k=='y')
        {
            printf("是否需要注册(y/n)");
            scanf(" %c",&k);
        }
        if(k=='n')
        {
            printf("是否需要登录(y/n)");
            scanf(" %c",&end);
            if(end=='n')
                break;
        }
        printf("请输入账户:");
        scanf("%s",member);
        printf("请输入密码:");
        scanf("%s",passwd);
        char fmem[20]="";
        char fpwd[20]="";
        while(1)
        {
            int flag=fscanf(userfp,"%s",fmem);
            fscanf(userfp,"%s",fpwd);
            if(EOF==flag)
            {
                if(k!='y')
                {
                    printf("账户不存在\n");
                    break;
                }
                printf("注册成功\n");
                fprintf(userfp,"%s %s\n",member,passwd);    
                break;
            }
            if((strcmp(fmem,member))==0)
            {
                if(0==(strcmp(passwd,fpwd)))
                {
                    if(k!='y')
                    {
                        printf("登录成功\n");
                        end='n';
                        break;
                    }
                }
                if(k!='y')
                    printf("密码不正确\n");
                else
                    printf("注册失败,账户重复\n");
                break;
            }
        }
        if(fclose(userfp)<0)
        {
            printf("文件关闭错误\n");
            return -1;
        }
    }
    return 0;
}

IOday1_第1张图片

复制并计算文件的行数和字节数

#include
#include
#include
int main(int argc, const char *argv[])
{
    FILE *fp1=fopen("1.txt","r");
    if(NULL==fp1)
    {
        perror("fp1 fopen");
        return -1;
    }
    FILE *fp2=fopen("2.txt","w");
    if(NULL==fp2)
    {
        perror("fp2 fopen");
        return -1;
    }
    char t=0;
    int c1=0;
    int c2=0;
    while(1)
    {
        t=fgetc(fp1);
        if(EOF==t)
            break;
        fputc(t,fp2);
        c1++;
        if(t=='\n')
        {
            c2++;
        }

    }
    printf("该文件有%d个字节\n有%d行\n",c1,c2);
    if(fclose(fp1)<0)
        return -1;
    if(fclose(fp2)<0)
        return -1;

    return 0;
}
IOday1_第2张图片

账号密码输入

#include
#include
#include
int main(int argc, const char *argv[])
{
    char member[20]="";
    char passwd[20]="";
    FILE *userfp=fopen("usr.txt","r");
    if(NULL==userfp)
    {
        perror("userfp fopen");
        return -1;
    }
    printf("请输入账户:");
    scanf("%s",member);
    printf("请输入密码:");
    scanf("%s",passwd);
    while(1)
    {
        char fmem[20]="";
        char fpwd[20]="";
        int flag=fscanf(userfp,"%s",fmem);
        fscanf(userfp,"%s",fpwd);
        if(EOF==flag)
        {
            printf("账户不存在\n");
            break;
        }
        if(!(strcmp(fmem,member)))
        {
            if(!(strcmp(passwd,fpwd)))
            {
                printf("登录成功\n");
                break;
            }
            printf("密码不正确\n");
            break;
        }
    }
    if(fclose(userfp)<0)
    {
        printf("文件关闭错误\n");
        return -1;
    }

    return 0;
}
IOday1_第3张图片

IOday1_第4张图片

你可能感兴趣的:(c语言)