folder Tahribat.com Forumları
linefolder C - C++
linefolder C'de Değişkenlerle Ve Dosyalamayla İlgili Problem



C'de Değişkenlerle Ve Dosyalamayla İlgili Problem

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    ------------------------------

    #include<stdio.h>
    #include<locale>

        FILE *cfPtr;
        char TCNo[11];
        char ad[20];
        char soyad[20];
        char odaNo[10];
        char tarih[11];
        int giris=0;

    int main()
    {
        setlocale(LC_ALL,"TURKISH");
        while((giris!=5))
        {
        printf("      MENÜ\n----------------\n[1]Kayıt ekle\n[2]Kayıt düzenle\n[3]Kayıt sil\n[4]Kayıt bul\n[5]Çıkış\n");
        scanf_s("%d",&giris);
        if(giris==5)
        {
            break;
        }
        else if(giris==1)
        {
        }
        else if(giris==2)
        {
        }
        else if(giris==3)
        {
        }
        else if(giris==4)
        {
        }
        else
            printf("Yanlış giriş");
        }
    }

    --------------------------------

    Şu şekilde iskeleti çıkardım,seçeneklere yapılacak işlemleride koyucam ama şöyle bi sıkıntım var, kalın yazılan TCNo değişkeni 11 haneli TC kimlik numarasını alıcak,ancak int 10 haneye kadar desteklediği için sorun çıkıyo. char olarak tanımladım olmadı,long dedim olmadı,long int ve unsigned long int denedim olmadı.Nasıl yapıcam bunu?

     

    Örnek kayıt denemesi yaptığım kodlarda bunlar;

    -----------------------

    #include<stdio.h>
    #include<locale>
    int main()
    {
        long int hesap;
        char isim[30];
        double bakiye;
        FILE *cfPtr;
        setlocale(LC_ALL,"TURKISH");
        if((cfPtr = fopen("hastalistesi.dat","w"))==NULL)
            printf("Dosya açılamadı\n");
        else
        {
            printf("Hesap numarası, isim, bakiye\n?\n");
            scanf("%d%s%lf",&hesap,&isim,&bakiye);
            while(!feof(stdin))
            {
                fprintf(cfPtr, "%d %s %.2f\n",hesap,isim,bakiye);
                printf("? ");
                scanf("%l%s%lf",&hesap,&isim,&bakiye);
            }
            fclose(cfPtr);
        }   
        return 0;
    }

    ----------------------


    :)
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    JPriest
    JPriest's avatar
    Kayıt Tarihi: 09/Mart/2007
    Erkek

    Diğer her şeyi char olarak tanımladığında sıkıntı yoksa, bunda da problem olmaması lazım. Ne hatası veriyor?


    Sen hiç kaval çaldın mı?
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    JPriest bunu yazdı:
    -----------------------------

    Diğer her şeyi char olarak tanımladığında sıkıntı yoksa, bunda da problem olmaması lazım. Ne hatası veriyor?


    -----------------------------

    Şimdi diğer değişkenleride char olarak tanımlayıp denedim oldu. Ayrıca şu c'nin scanf fonksiyonunun specifierleri yüzünden sıkıntı olmuş %s yerine %d yazılı kalmış. Bu şekilde ben kayıt işlemini çözdüm,peki bunu tamsayı olarak nasıl okuturuz?


    :)
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Gizem
    sLeymN
    sLeymN's avatar
    Kayıt Tarihi: 31/Mart/2008
    Erkek

    pointer denesen olmaz mı ?


    Cehennemin dibine kadar yolum var daha.. || Nasılsa her yalnız kendine sürgündür Asmera unutma.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    tuncaxxz
    tuncaxxz's avatar
    Kayıt Tarihi: 23/Ağustos/2005
    Erkek

    wasd bunu yazdı:
    -----------------------------

    Şimdi diğer değişkenleride char olarak tanımlayıp denedim oldu. Ayrıca şu c'nin scanf fonksiyonunun specifierleri yüzünden sıkıntı olmuş %s yerine %d yazılı kalmış. Bu şekilde ben kayıt işlemini çözdüm,peki bunu tamsayı olarak nasıl okuturuz?

    -----------------------------

    TCno 'yu string halinde diziye alırsın. daha sonra da atoi ile integer'a çevirirsin.


    punto cero
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    JPriest
    JPriest's avatar
    Kayıt Tarihi: 09/Mart/2007
    Erkek

    Long int olabilir. Unsigned tanımla bir de


    Sen hiç kaval çaldın mı?
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nightmare07
    nightmare07's avatar
    Kayıt Tarihi: 23/Haziran/2011
    Erkek

    eğer doğru anladıysam şöyle bir çözüm olabilir

    char Tc[11];

    int Tci[11];

    for(i=0;i<=10;i++)

    {Tci[i]=Tc[i]-48;

     

    }

     

    şeklinde yazarsan Tci dizisine sayi olarak aktarmis olursun ama işine yararmı bilmiyorum

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hunter
    j4x
    j4x's avatar
    Kayıt Tarihi: 16/Temmuz/2005
    Erkek

    String olarak al hocam. Tamsayi olarak da istedigin haneye kadar cikarsin ama T.C. kimlik diyorsun,

    char tcno[12];

    scanf("%s",tcno);


    The king is bleeding.
Toplam Hit: 1332 Toplam Mesaj: 8