#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>   
#define I 27
#define DosyaAdi "test.txt"
struct  müÅteri
{
    char iban[I];
    long long tc;
    int bakiye;
};
int ibankontrol(char iban[])
{
    if(!isalpha(iban[0]) || !isalpha(iban[1]))
        return 0;
    for (int i = 2; i < 27; i++)
    {
        if (iban[i]<48 || iban[i]>57)
        {
            return 0;
        }
    }
    return 1;
}
int tckontrol(long long tc)
{
    int a=0,bas;
    long long i=1;
    while (a<11)
    {
        bas=(tc/i)%10;
        if (bas<0 || bas>9)
        {
            return 0;
        }
        
        i*=10;
        a++;
    }
    if (tc / i > 0) {
        return 0;
    }
    return 1;
}
int kaydet(struct müÅteri m)
{
    FILE *dosya;
    dosya=fopen(DosyaAdi,"a");
    if (dosya==NULL)
    {
        printf("\nKayıt baÅarısız\n");
        return 0;
    }
    
    fprintf(dosya,"%lld %d %s\n",m.tc,m.bakiye,m.iban);
    fclose(dosya);
    return 1;
}
int havale(char kaynak[],char hedef[],int miktar)
{
    struct müÅteri müÅteriler[100];
    int i=0,y=0,z=0;
    char string[100];
    FILE *dosya;
    dosya=fopen(DosyaAdi,"r");
    while (1)
    {
        if ((fgets(string,100,dosya))==NULL)
        {
            break;
        }
        sscanf(string,"%lld %d %s",&müÅteriler[i].tc,&müÅteriler[i].bakiye,müÅteriler[i].iban);
        i++;
    }   
    for(z=0;z<i;z++)
    {
        printf("\nGuncel bilgiler:\n");
        printf("%d: %s  %lld  %d\n",z+1,müÅteriler[z].iban,müÅteriler[z].tc,müÅteriler[z].bakiye);
    }
    fclose(dosya);
    for (int j = 0; j < i; j++)
    {
        if (strcmp(kaynak,müÅteriler[j].iban) == 0)
        {
            müÅteriler[j].bakiye -= miktar;
            y++;
        }
        if (strcmp(hedef,müÅteriler[j].iban) == 0)
        {
            müÅteriler[j].bakiye += miktar;
            y++;
        }
    }
    if (y != 2)
    {
        return 0;
    }
    
    dosya = fopen(DosyaAdi, "w");
    if (dosya == NULL)
    {
        printf("Dosya açılamadı.\n");
        return 0;
    }
    
    for (int s = 0; s < i; s++)
    {
        fprintf(dosya, "%lld %d %s", müÅteriler[s].tc, müÅteriler[s].bakiye, müÅteriler[s].iban);
        if (s!=i-1)
        {
            printf("\n");
        }
        
    }
    fclose(dosya);
    
    return 1;
}
int main()
{
    int seçim;
    int dönüÅ=0,kontrol=0;
    char kaynak[27],hedef[27];
    int miktar=0;
    struct müÅteri m;
    while (1)
    {
        printf("Menü:\n");
        printf("1:Kayıt\n");
        printf("2:Havale\n");
        printf("3:ÃıkıÅ\n");
        printf("Seçiminiz: ");
        scanf("%d",&seçim);
        switch (seçim)
        {
        case 1:
       
            while (1)
            {
                printf("İban giriniz: ");
                scanf("%s",m.iban);
                fflush(stdin);
                dönüÅ=ibankontrol(m.iban);
                if (dönüÅ==0)
                {
                    printf("İban yanlıÅ");
                }
                else if (dönüÅ==1)
                {
                    break;
                }
            }
            while (1)
            {
                printf("TC giriniz");
                scanf("%lld",&m.tc);
                dönüÅ=tckontrol(m.tc);
                if (dönüÅ==0)
                {
                    printf("TC yanlıÅ");
                }
                else if (dönüÅ==1)
                {
                    break;
                }
            }
            
            printf("Bakiye giriniz");
            scanf("%d",&m.bakiye);
            kontrol=kaydet(m);
            if (kontrol==0)
            {
                printf("Kayıt baÅarısız");
            }
            else if (kontrol==1)
            {
                break;
            }
            break;
        case 2:
            printf("Kaynak iban: ");
            scanf("%s",kaynak);
             
            fflush(stdin);
            
            printf("Hedef iban: ");
            scanf("%s",hedef);
   
            fflush(stdin);
            printf("Gönderilicek miktar: ");
            scanf("%d",&miktar);
            int a=havale(kaynak,hedef,miktar);
            if (a==0)
            {
                printf("Havale baÅarısız\n");
            }
            break;
        case 3:
            exit(2);
            break;
        default:
            printf("geçersiz iÅlem");
            break;
        }
    }
    return 0;
}
  
   在我的代码中,当输入信息时,我会将其处理到文件中,然后在进行传输时,我删除文件,并在交易后将其写回文件。虽然注册过程在我的代码中正确执行,但转移交易没有正确发生。我认为这是一个空白字符,但你怎么看?