运行后txt文件里的数据清空


void Transfer() { //首先肯定需要查询一下 //先把账户信息读进来 必须输入该账号和对应的密码,输入错误则给出警告 int i,flag=0,flag1=0,flag2=0; int item1=0,count=0,n=0; FILE *fp,*fp1; char accountnum1[LEN+1]; char accountnum2[LEN+1]; double wd; if((fp=fopen("account.txt","r"))==NULL) { printf("cannot open the file!!!\n"); return; } while(fscanf(fp,"%s %s %s %lf %s\n",&bank[count].account,&bank[count].name,&bank[count].key,&bank[count].balance,&bank[count].VIPoNormal)==5) { count++;//记录账户条数 } n=count; fclose(fp); if((fp1=fopen("account.txt","w"))==NULL) { printf("cannot open the file!!!\n"); return; } printf("请输入要转出钱款的账户:"); scanf("%s",&accountnum1); printf("请输入要转入钱款的账户:"); scanf("%s",&accountnum2); for(i=0;i<n;i++) //依次输出 { if(strcmp(accountnum1,bank[i].account)==0) { flag=1; item1=i; } if(strcmp(accountnum2,bank[i].account)==0) { flag1=1; } } if(flag==0||flag1==0) { printf("您输入的账户不存在!!!\n"); return; } if(flag==1&&flag1==1) { char s2[LEN]; while(flag2!=1) { for(i=3;i>0;i--) { printf("请输入密码:"); scanf("%s",&s2); if(strcmp(s2,bank[item1].key)==0) { flag2=1; break; } printf("!!!密码输入错误!!!\n");// printf("你还有%d次机会可以输入密码\n\n",i-1); } if(i==0) { printf("三次输入均密码错误,请重新选择功能\n"); return; } } } if(flag2==1) { printf("请输入要转出的金额:"); scanf("%lf",&wd); if(wd>bank[item1].balance) { printf("您的余额不足!"); return; } for(i=0;i<n;i++) //依次输出 { if(strcmp(accountnum1,bank[i].account)==0) fprintf(fp1,"%s %s %s %lf %s\n",bank[i].account,bank[i].name,bank[i].key,bank[i].balance-wd,bank[i].VIPoNormal); else if(strcmp(accountnum2,bank[i].account)==0) fprintf(fp1,"%s %s %s %lf %s\n",bank[i].account,bank[i].name,bank[i].key,bank[i].balance+wd,bank[i].VIPoNormal); else fprintf(fp1,"%s %s %s %lf %s\n",bank[i].account,bank[i].name,bank[i].key,bank[i].balance,bank[i].VIPoNormal); } } printf("转款成功!\n"); fclose(fp1); }


{
        //首先肯定需要查询一下 
        //先把账户信息读进来    必须输入该账号和对应的密码,输入错误则给出警告 
    int i,flag=0,flag1=0,flag2=0;
    int item1=0,count=0,n=0;
    FILE *fp,*fp1;
    char accountnum1[LEN+1];
    char accountnum2[LEN+1];
    double wd;
    if((fp=fopen("account.txt","r"))==NULL)
    {
        printf("cannot open the file!!!\n");
        return;
    }
    while(fscanf(fp,"%s %s %s %lf %s\n",&bank[count].account,&bank[count].name,&bank[count].key,&bank[count].balance,&bank[count].VIPoNormal)==5) 
    {
        count++;//记录账户条数
    }
    n=count;
    fclose(fp);
    if((fp1=fopen("account.txt","w"))==NULL)
    {
        printf("cannot open the file!!!\n");
        return;
    }
    printf("请输入要转出钱款的账户:");
    scanf("%s",&accountnum1);
    printf("请输入要转入钱款的账户:");
    scanf("%s",&accountnum2);
    for(i=0;i<n;i++)    //依次输出
    {
        if(strcmp(accountnum1,bank[i].account)==0)
        {
            flag=1;
            item1=i;
        }
        if(strcmp(accountnum2,bank[i].account)==0)
        {
            flag1=1;
        }
    }
    if(flag==0||flag1==0)
    {
        printf("您输入的账户不存在!!!\n");
        return;
    }
    if(flag==1&&flag1==1)
    {
        char s2[LEN];
        while(flag2!=1)
        {
            for(i=3;i>0;i--)
            {
                printf("请输入密码:");
                scanf("%s",&s2);
                if(strcmp(s2,bank[item1].key)==0)
                {
                    flag2=1;
                    break;
                } 
                printf("!!!密码输入错误!!!\n");//
                printf("你还有%d次机会可以输入密码\n\n",i-1);
            }
            if(i==0)
            {
                printf("三次输入均密码错误,请重新选择功能\n");
                return;
            }
        }
    }
    if(flag2==1)
    {
        printf("请输入要转出的金额:");
        scanf("%lf",&wd);
        if(wd>bank[item1].balance)
        {
            printf("您的余额不足!");
            return;
        }
    for(i=0;i<n;i++)    //依次输出
    {
        if(strcmp(accountnum1,bank[i].account)==0)
            fprintf(fp1,"%s %s %s %lf %s\n",bank[i].account,bank[i].name,bank[i].key,bank[i].balance-wd,bank[i].VIPoNormal);
        else if(strcmp(accountnum2,bank[i].account)==0)
            fprintf(fp1,"%s %s %s %lf %s\n",bank[i].account,bank[i].name,bank[i].key,bank[i].balance+wd,bank[i].VIPoNormal);
        else
            fprintf(fp1,"%s %s %s %lf %s\n",bank[i].account,bank[i].name,bank[i].key,bank[i].balance,bank[i].VIPoNormal);
    }
    }
    printf("转款成功!\n");
    fclose(fp1);
} 

27行和29行代码错误,flag和flag1的值不会改变(还是原来的0),直接退出了,所以不会写文件

printf("请输入要转出钱款的账户:"); 
scanf("%s",accountnum1);//修改1,accountnum1之前不需要&,
printf("请输入要转入钱款的账户:"); 
scanf("%s",accountnum2);//修改2,accountnum2之前不需要&,