8 Aralık 2013 Pazar

INDEX

Kaçış Dizgeleri (Escape Sequences)

Ekrana yazacağımız metinlerin arasında birtakım özel karakterler bulunuyorsa bu karakterleri tanımlamak için kullandığımız dizgelerdir.

Kaçış Dizgesi(Escape Sequence)Anlamı
\nYeni Satır
\tYatay Tab
\vDikey Tab
\aBip Sesi Cikar
\bGeriye Doğru Bir Karakter Sil (Backspace)
\"Çift Tırnak
\'Tek Tırnak
\\Ters Bölü
\?Soru İşareti

Örnek1:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("\"Bittigi icin aglama, gerceklestigi icin sevin\"\n\t\t\t\t\t-Dr.Seuss\n");
    return 0;
}

Çıktı1:
"Bittigi icin aglama, gerceklestigi icin sevin"
                                        -Dr.Seuss



7 Aralık 2013 Cumartesi

Format Belirleyiciler (Format Specifiers)

Tanımlanmış(bildirilmiş) değişkenlerin değerini, işlem sonuçlarını, yada sabit değerleri ekrana yazdırırken yazdırılacak olan değerin türüne göre format belirleyiciler kullanılır.

 Değer Türü(Tipi)    Format Belirleyici   
int
%d
unsigned int
%u
long
%ld
char
%c
float
%f
double
%lf
char [ ]
%s

Kullanım :
 Yazdırılmak istenen format çift tırnak içerisinde belirlenir, sonra da bu formatta kullanılan her bir format belirleyici için çift tırnak bitiminden sonra virgülle ayrılmış parametre(ler) verilir.

printf("...%d...%f...%c...%s",parm1,parm2,parm3,parm4);
Ekrana yadırma işlemi yapılırken parm1,parm2,parm3,parm4 parametrelerindeki değerler
sırasıyla %d,%f,%c,%s format belirleyicilerinin olduğu yere yazılacaktır.

Örnek1:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int sicaklik=-5;
    unsigned int yas=17;
    long nufus=75000;
    char devam='E';
    char marka[8]="Samsung";
    float hata_payi=10.5;
    double ortalama=80.5;
    printf("Hava sicakligi %d derece.\n",sicaklik);
    printf("Ben hep %u yasindaydim\n",yas);
    printf("Bu koy %u nufusludur\n",nufus);
    printf("Devam etmek inin %c tusuna basiniz\n",devam);
    printf("%s ile Google guclerini birlestirdi\n",marka);
    printf("Etkili sonuc icin maks hata payi %f olmalidir\n",hata_payi);
    printf("Gecmek icin ortalamaniz %lf olmalidir",ortalama);
    return 0;
} 

Çıktı1:
Hava sicakligi -5 derece.
Ben hep 17 yasindaydim
Bu koy 75000 nufusludur
Devam etmek inin E tusuna basiniz
Samsung ile Google guclerini birlestirdi
Etkili sonuc icin maks hata payi 10.500000 olmalidir
Gecmek icin ortalamaniz 80.500000 olmalidir

Örneklerimizi zenginleştirelim.

Örnek2:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int x=5,y=6;
    //sabit tamsayi degeri
    printf("2 ile 3 un toplami %d tir",5);
    //islem sonucu
    printf("\n5 ile 6 nin toplami %d dir",x+y);
    //2 degisken degeri ve islem sonucu
    printf("\n(2*%d)+(3*%d)=%d",x,y,2*x+3*y);
    //sabit metin degeri
    printf("\nYU bir %s universitesidir\n","Dunya");
    //sabit karakter degeri
    printf("Evet icin %c hayir icin %c yazin",'E','H');
    return 0;
}

Çıktı2:
2 ile 3 un toplami 5 tir
5 ile 6 nin toplami 11 dir
(2*5)+(3*6)=28
YU bir Dunya universitesidir
Evet icin E hayir icin H yazin

Gelişmiş Seçenekler
  • % işaretinden sonra - ile başlanırsa değerler sola dayalı biçimde yazılır
  • % işaretinden sonraki sayi 0 ile başlarsa boşluklar 0 ile doldurulur
  • . dan önceki sayı, yazdırılacak değer için kaç karakterlik yer ayrılacağını belirler
  • . dan sonraki sayı, Metinlerde maksimum uzunluğu belirler
  • . dan sonraki sayı, Ondalıklı sayılarda virgülden sonraki basamak sayısını ifade eder
Şimdi de yazdırılacak olan değerlerin ekranda ne kadar yer kaplaması gerektiğini belirleyelim

Örnek3:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    //Metin ve Tamsayilar
    printf("\t%9s  %4s  %6s\n","AY","KAR","ADET");
    printf("\t%9s  %%%3d  %06d","Ocak",5,1);
    printf("\n\t%9s  %%%3d  %06d","Subat",10,200);
    printf("\n\t%9s  %%%3d  %06d","Kasim",40,30000);
    printf("\n\t%9s  %%%3d  %06d\n","Aralik",100,400000);
    printf("\n");
    //Metinler
    printf("%-9s\n","URUN");
    printf("---------\n");
    printf("%-9.3s\n","Elma");
    printf("%-9.5s\n","Kiraz");
    printf("%9.4s\n\n","Karpuz");
    //Ondalikli sayilar
    printf("%10s\n","TL/KG");
    printf("----------\n");
    printf("%010.2f\n",1.368);
    printf("%-10.4f\n",24.2052);
    printf("%10.5f\n",25.75);
    return 0;
}

Çıktı3:
AY   KAR    ADET
             Ocak  %  5  000001
            Subat  % 10  000200
            Kasim  % 40  030000
           Aralik  %100  400000

URUN
---------
Elm
Kiraz
     Karp

     TL/KG
----------
0000001.37
24.2052
  25.75000

Merhaba Dunya (Hello World)

#include <stdio.h>
#include <stdlib.h>
int main()
{
    printf("Merhaba Dunya!\n");
    return 0;
}

printf komutu içerisindeki \n karakteri özel bir karakter olup çıktı ekranında yeni bir satıra geçmemizi sağlar. Bu özel karakterlerle ilgili daha ayrıntılı bilgiyi BURADA bulabilirsiniz. Yukarıdaki programın çıktısıyla aynı çıktıyı verebilecek aşağıdaki kod örneklerini inceleyin.

2.Versiyon
#include <stdio.h>
#include <stdlib.h>
int main()
{
    printf("Mer");
    printf("haba ");
    printf("Dunya!\n");
    return 0;
}

Görüldüğü üzere alt alta printf satırları yazmak çıktıların ekranda alt alta yazılmalarına sebep olmaz. Çıktıların alt alta yazılmasını sağlayan \n format belirleyicisidir.

3.Versiyon
#include <stdio.h>
#include <stdlib.h>
int main()
{
    printf("Mer");
    printf("haba Dunya!\n");
    return 0;
}

4.Versiyon
#include <stdio.h>
#include <stdlib.h>
int main()
{
    printf("Mer");
    printf("haba Dunya!");
    printf("\n");
    return 0;
}