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

Hiç yorum yok:

Yorum Gönder