7 Haziran 2017 Çarşamba

C++ Notlar

FGETC : Belirtilen dosyadan karakter okur 
FPUTC : Belirtilen dosyaya karakter yazar
FGETS : Belirtilen dosyadan Satır okur
FPUTS : Belirtilen dosyaya  Satır  yazar

feof fonksiyonu, bir dosya için dosya sonu belirtecinin elde edilip edilmediğine karar verir.

fprintf fonksiyonu ile printf fonksiyonu, fprintf fonksiyonunun argüman olarak verinin yazılacağı dosyayı gösteren bir gösterici alması haricinde eĢdeğerdir.


R+ -> GÜNCELLEME modu 
W+->YAZMA modu .. önceki içerik silinir 

Yani SİLİNMEMESİ İCİN ya "a "yada "r+" ile acılmalı

r +‖ modu dosyayı, okuma ve yazma yapmak için açar. ‖w +‖ modu, yazma ve okuma için bir dosya yaratır. Eğer dosya daha önceden yaratılmıĢsa ―w+‖ modu dosyayı açar ve önceki tüm içerikler kaybolur. ‖a+‖ modu, dosyayı okuma ve yazma yapmak için açar. Bu modda açılan dosyalarda tüm yazma iĢlemleri dosyanın sonuna yapılır. Eğer dosya daha önceden yoksa, yaratılır.

rewind fonksiyonu, programın dosya pozisyon göstericisini belirlenen dosyanın baĢına geri döndürmesini sağlatır

fwrite fonksiyonu, bir veri bloğunu ( belli sayıdaki byte‘ı) dosyaya yazar.

sizeof operatörü, operandının boyutunu byte olarak döndüren derleme zamanlı bir operatördür.

fseek fonksiyonu, aramanın baĢlatıldığı konumuna bağlı olarak, dosya pozisyon göstericisini dosyada istenen konuma taĢır. Arama Ģu üç konumdan birinden baĢlayabilir: SEEK_SET, SEEK_CUR ve SEEK_END. SEEK_SET aramanın dosyanın baĢından baĢlayacağını; SEEK_CUR aramanın dosyadaki o anda bulunulan konumdan baĢlayacağını ve SEEK_END aramanın dosya sonundan baĢlayacağını belirtir


 fread bir dosyadan veri bloğu ( belli sayıda byte ) okur.



fscanf fonksiyonu, fscanf çağrısında standart giriĢ akıĢının göstericisi kullanılarak standart giriĢten okuma yapmak için kullanılabilir.  ---> STDINE ALIRIZ veriyi 



DEGİŞKEN ADI DEGİSTRME : TYPEDEF
her seferinde int yazmak istemiyoruz örneğin sadece x deyince anlaşılsın istiyoruz ozmn typedefle degistiririz...

typedef int  i ;
i    sayi=5       diyerek   artık int demeden   sadece i diyerek  degiskeni tanımlayaibiliriz 




  • Dinamik Bellek Yönetimi Malloc ve Callocla Yapılır..bunun icin #include eklenmeli programımıza 

calloc ile malloc farkı calloc olusturdugu alanlara hep 0 degerini atar..fakat malloc hic bir deger atamaz  kullanımları ise 



isaretci_adi = calloc( eleman_sayisi, her_elemanin_boyutu ); 



isaretci_adi = malloc( eleman_sayisi * her_elemanin_boyutu ); 



en sonunda free(dizi) deyip alanları boşaltıyoruz 



Hafıza alanı ayırırken bazen bir problem çıkabilir. Örneğin bellekte yeterli alan olmayabilir ya da benzeri bir sıkıntı olmuştur. Bu tarz problemlerin sık olacağını düşünmeyin. Ancak hafızanın gerçekten ayrılıp ayrılmadığını kontrol edip, işinizi garantiye almak isterseniz, aşağıdaki yöntemi kullanabilirsiniz:
 dizi = calloc( eleman_sayisi, sizeof( int ) );
 // Eger hafiza dolmussa dizi pointer'i NULL'a 
 // esit olacak ve asagidaki hata mesaji cikacaktir.
 if( dizi == NULL )
  printf( "Yetersiz bellek!\n" );




ENUM 

enum ana_renkler {
  Kirmizi,
  Mavi,
  Sari
 };

 // Degiskeni tanimliyoruz.
 enum ana_renkler piksel;

 // Degisken degerini Mavi olarak belirliyoruz.
 // Dilersek Sari ve Kirmizi da girebiliriz.
 piksel = Mavi;


///ana_renkler   SANKİ İNTEGER      PİKSEL ise Degisken adı  mesela X gibi    

İNTEGERA verilebilecek degerler ise kırmızı mavi sari 
Share:

6 Haziran 2017 Salı

C++ Fread Kullanımı

#include < QCoreApplication >
#include< stdio.h >
struct musteriVerisi
{
    int hesap_No;
    char soyisim[30];
    char isim[50];
    double bakiye;
};
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    FILE *Ptr;
    struct musteriVerisi musteri={0,"","",0.0};
    if((Ptr=fopen("musteri.dat","r"))==NULL)
    {
        printf("Dosya Acilamadi");
    }
    else
    {
        printf("Hesap Numarasini Giriniz : \n");
        scanf("%d",&musteri.hesap_No);

       printf("%10s%15s%20s%25s\n","HesapNo","Soyad","Ad","Bakiye");

       while(!feof(Ptr))
       {
           fread(&musteri,sizeof(struct musteriVerisi),1,Ptr);
           if(musteri.hesap_No !=0)
           {
               printf("%10d%15s%20s%25lf\n",musteri.hesap_No,
                        musteri.soyisim,musteri.isim,musteri.bakiye);

           }
       }
           fclose(Ptr);
    }
    return 0;
}


Share:

C++ FWrite ve FSeeek Birlikte Kullanımı

/* Fseek ile imlec offset istenilen yere getiriliyor. 

Fwrite ilede belirtilen yere .dat dosyasıolarak yazılıyor */

struct musteriVerisi
{
    int hesap_No;
    char soyisim[30];
    char isim[50];
    double bakiye;
};
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    FILE *Ptr;
    struct musteriVerisi musteri;
    if((Ptr=fopen("musteri.dat","a"))==NULL)
    {
        printf("Dosya Acilamadi");
    }
    else
    {
       printf("Hesap Numaranizi Giriniz : \n");
       scanf("%d",&musteri.hesap_No);
       while(musteri.hesap_No!=0)
       {
            printf("Soy isim , isim ve Bakiye Bilgilerini Giriniz : \n");
            fscanf(stdin,"%s%s%lf",musteri.soyisim,musteri.isim,&musteri.bakiye);
            /* ÖNEMLİ GİRDİYİ STDINE ALMAK İSTERSEK FSCANF
         KULLANILIR !! */
          
            fseek(Ptr,(musteri.hesap_No-1)*sizeof(struct musteriVerisi),SEEK_SET);
            fwrite(&musteri,sizeof(struct musteriVerisi),1,Ptr);
            printf("Hesap Numaranizi Giriniz : \n");
            scanf("%d",&musteri.hesap_No);
       }
           fclose(Ptr);
    }
    return 0;
}


Share:

C++ FWrite Kullanımı

/* FWrite dosyanın belli belirtilen bir alanına yamzayı saglar */


#include < QCoreApplication >
#include< stdio.h >

struct musteriVerisi
{
    int hesapNo;
    char soyisim[50];
    char isim[30];
    double bakiye;
};

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    FILE *fPtr;
    struct musteriVerisi bosVeri={0,"temel","ahmet",12};
    int i;

    if((fPtr=fopen("kredi","a"))==NULL)
    {
        printf("Dosya Acilamadi\n");
    }
    else
    {
        for(i=0;i<100;i++)
        {
            fwrite(&bosVeri,sizeof(struct musteriVerisi),1,fPtr); 
    /* Bura ÖNEMLİ KISIM . 1 dizi yazılacak demektir 1 */

            fprintf(fPtr,"%s","\n");
        }
        fclose(fPtr);
        printf("\nYazma islemi Bitti \n");
    }
    return a.exec();
}


Share:

C++ Dosyadan Verileri Okuyup Listeleme (Bank Transaction)

#include < QCoreApplication >
#include< stdio.h >
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    int secim , hesap;
    double bakiye;
    char isim[30];
    FILE *Ptr;
    if((Ptr=fopen("trans","r"))==NULL)
    {
        printf("Dosya Acilamadi\n");

    }
    else
    {
        printf("1 :  Sifir Bakiyesi Olanlari Listele\n"
               "2 :  Kredi Hesaplari Listele\n"
               "3 :  Borcu Olanlari Listele\n"
               "4 : Cikiş\n");
        scanf("%d",&secim);
        while(secim !=4)
        {
            fscanf(Ptr,"%d%lf%s",&hesap,&bakiye,isim);
            switch (secim)
            {
            case 1:

                printf("Kredisi Sifir Olanlarin Listesi :\n ");
                while(!feof(Ptr))
                {
                    if(bakiye==0)
                    {
                        printf("%10d %16lf %22s\n",hesap,bakiye,isim);

                    }
                     fscanf(Ptr,"%d%lf%s",&hesap,&bakiye,isim);
                }
                     break;
            case 2:
                printf("Kredi Hesabı olanlarin  Listesi :\n ");
                while(!feof(Ptr))
                {
                    if(bakiye<0)
                    {
                        printf("%10d %16f %22s\n",hesap,bakiye,isim);

                    }
                     fscanf(Ptr,"%d%lf%s",&hesap,&bakiye,isim);
                }

                 break;
            case 3:
                printf("Borcu Olanlarin Listesi :\n ");
                while(!feof(Ptr))
                {

                    if(bakiye>0)
                    {
                        printf("%10d %16f %22s\n",hesap,bakiye,isim);

                    }
                    fscanf(Ptr,"%d%lf%s",&hesap,&bakiye,isim);

                }
               break;
            }
            rewind(Ptr);           /* Ptr yi dosya başına getirir */
            scanf("%d",&secim);

        }
        printf("Cıkış\n");
        fclose(Ptr);
    }



    return a.exec();
}


Share:

C++ Dosya acma ve Okuma

#include < QCoreApplication >
#include< stdio.h >
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    int Hesap_Id;
    char isim[30];
    double bakiye;
    FILE *fPtr;
    if((fPtr=fopen("vv","r"))==NULL)
    {
        printf("Dosya Acilamadi : \n");
    }
    else
    {
        printf("Lutfen Sira ile  %10s%16s%22s giriniz:\n","Id","Ad","Bakiye");
        fscanf(fPtr,"%d%s%lf",&Hesap_Id,isim,&bakiye);

        while(!feof(fPtr))              /* Dikkat  fPtr yani dosya sonu gelmediyse*/
        {
            printf("%10d%16s%22f\n",Hesap_Id,isim,bakiye);
            fscanf(fPtr,"%d%s%lf",&Hesap_Id,isim,&bakiye);
        }
        fclose(fPtr);
    }
    return a.exec();
}



Share:

5 Haziran 2017 Pazartesi

C++ Dosya İşlemleri Dosya acma yazma

/*  a ile dosyayı acarsan yoksa olusturur varsa devamına yazar
 *  w yada r ile acarsan yoksa olustur varsa icini siler yazar DİKKAT  */
/* rewinnd(fPtr) ilmleci dosyanın en basına getirir */

#include < QCoreApplication >
#include< stdio.h >
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    int hesap;
    char ad[30];
    double bakiye;
    FILE *cfPtr;

    if((cfPtr=fopen("musteri.txt","w"))==NULL)
    {
        printf("Dosya Acilamadi");

    }
    else
     {
        fprintf(cfPtr,"%10s%15s%20s \n","Hesap ","Ad","Bakiye");
        printf("Sira ile Hesap , Ad ve Bakiyeyi Giriniz : \n");
        scanf("%d %s %lf",&hesap,ad,&bakiye);
        while(!feof(stdin))
        {
            fprintf(cfPtr,"%10d%15s%20lf \n",hesap,ad,bakiye);
            scanf("%d %s %lf",&hesap,ad,&bakiye);
        }
        fclose(cfPtr);
    }

    return a.exec();

}
Share:

C++ Enum

#include
int main( void )
{
 // Yeni veri tipini olusturuyoruz
 // Ayrica yeni veri tipinden,
 // bir degisken tanimliyoruz.
 enum boolean {
  false = 0,
  true = 1
 } dogru_mu;

 dogru_mu = true;
 if( dogru_mu == true )
  printf( "Doğru\n" );
 return 0;
}
Share:

C++ Struct ve Union Kullanımı Örnek

#include < QCoreApplication >
#include< stdio.h >

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    union
    {
        int stok_no;
        float fiyat;
        struct
        {
            char isim[20];
            char yazar[20];
        }kitap;
        struct
        {
            char isim[20];
            int model;
        }saat;
        struct
        {
            char desen[20];
            int renk;
            int size;

        }kazak;
    }katalog;
    printf("Katalog stk no : %d \n",katalog.stok_no);
    printf("Katalog fiyat : %f \n",katalog.fiyat);
    printf("Saat model: %i \n",katalog.saat.model);
    katalog.stok_no=1;
    katalog.fiyat=50;
    katalog.saat.model=3420;
    printf("Katalog stk no : %d \n",katalog.stok_no);
    printf("Katalog fiyat : %f \n",katalog.fiyat);
    printf("Saat model: %i \n",katalog.saat.model);
    return a.exec();
}





Share:

C++ Union

/* ÖNEMLİ !!!!!!!     Bir Union da  farklı degiskelnerin aynı hafızayı kullanmasını saglar 
     y icin 10 byte x icin 5 byte ayırılır  buyüzden mininum 10 byte yer ayrılır. 
tüm degiskenler tarafından aynı alan kullanılır  bu nedenle birinde yapılan degiskilk 
deiglerininide etkiler .  sadece bir deger degisirse digeri otomatikman degisir rasgele
örnegin x tanımlandı ise  y rasgele bir deger alır  */



#include < QCoreApplication >
#include< stdio.h >
union sayi{
    int x[5];
    double y[10];
};

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    union sayi deger;
    printf("X in Degeri : % d   Y in degeri : %f\n",deger.x,deger.y);
    deger.x=100;                                        
    printf("X in Degeri : % d   Y in degeri : %f\n",deger.x,deger.y);
    deger.y=127.345;
    printf("X in Degeri : % d   Y in degeri : %f",deger.x,deger.y);
    return a.exec();
}

Share:

C++ Struct Kullanımı

#include < QCoreApplication >
#include< stdio.h >
struct Yolcu
{
    char *ad;
    char cinsiyet;
    int yas;
    double bakiye;
} tourist1,tourist2;                // iki toorist tanımalnıyor 

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
   tourist1.ad="Ali";                   // tourist1 icin ad  cinsiyet vs girliyor //
   tourist1.cinsiyet='E';
   tourist1.yas=25;
   tourist1.bakiye=12;


   tourist2.ad="Fatma";             // tourist2 icin ad  cinsiyet vs girliyor //
   tourist2.cinsiyet='K';
   tourist2.yas=15;
   tourist2.bakiye=05;i


   int top_bakiye= tourist1.bakiye + tourist2.bakiye;

   printf("Toplam Bakiye : %d \n",top_bakiye);
   printf("ilk yolcunun adi : %s \n",tourist1.ad);
     printf("ikinci yolcunun adi : %s \n",tourist2.ad);

    return a.exec();
}


Share:

C++ Ters Tarama Kümesi [aeiuo]

#include < QCoreApplication >
#include< stdio.h >
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    char z[9];
    printf("Deger giriniz :\n");
    scanf("%[aeiou]",z);             /* a,e,i,o,u gelince ekrana basmayı bırakır     
                                                eğer  %[^aeiou] ise  girilen aeiu 
                                                 degilse yazar ekrana */
    printf("%s",z);

    return a.exec();
}


Share:

C++ Kelime Oyunu(Pig Latin)

Kullanıcıdan iki kelime alıp ilk kelimenin ilk harfini sonuna ekleyip ikinci kelimeyle birlestirip yazan oyun
örn  kelime1 : the
       kelime2: ay

     çıktı :  hetay



#include < QCoreApplication > 
#include< stdio.h >
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    char s1[50]="";
    char s2[50]="";
    char son[1]="";
    puts("İlk kelimeyi Giriniz\n");
    gets(s1);
    puts("İkinci kelimeyi Giriniz\n");
    gets(s2);
    int i =0;
    son[0]=s1[0];
    while(s1[i] !='\0')
    {
        s1[i-1]=s1[i];
        i++;
    }
     s1[i-1]=son[0];
     printf("%s%s \n",s1,s2);
    return a.exec();

}
Share:

4 Haziran 2017 Pazar

C++ Stringi Pointerla Tersten Yazdırma

#include < QCoreApplication>
#include< stdio.h>
 

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    void ters(const char  * const );
    char cumle[80];
    printf("Metin Giriniz \n");
    gets(cumle);
    printf("\n\nGirilen Metin Tersten Yazildiginda: \n\n");

    ters(cumle);
    printf("\n\nn");
    return 0;
}
void ters(const char *const sPtr)
{
    if(sPtr[0]=='\0')
    {
        return;                              /* BU KISIM COK ÖNEMLİ ALGORİTMA KISMI */
    } 
    else
    {
        ters(&sPtr[1]);
        putchar(sPtr[0]);
    }
}


Share: