Temel Giriş/Çıkış Fonksiyonları (Formatlı Çıktı)

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Yazılım
Seçkin Üye
Katılım
14 Nis 2019
Mesajlar
492
Tepki puanı
351
Ödüller
5
Yaş
27
Sosyal
7 HİZMET YILI
:yazı:

Merhaba MH forumu sakinleri ben Heaven.

Bugün Temel Giriş/Çıkış Fonksiyonları konumuza bir alt başlığı olan Formatlı Çıktı ile devam edeceğim.

Konumuza geçelim.

ayrac.png


Bundan önceki programlardaki değişkenler serbest biçimde (free format), yani derleyicinin belirlediği biçimde ekrana yazdırılmıştı.

Bazen giriş ve çıkışın biçimi kullanıcı tarafından belirlenmesi gerekebilir.

Bu işlem:
Tamsayılarda %d yerine %wd
Gerçel sayılarda %f yerine %w.kf
Stringlerde %s yerine %ws
biçimindeki kullanım ile sağlanır.

Burada w yazılacak olan sayının alan genişliği olarak adlandırılır. Gerçel bir değişken ekrana yazılacaksa, değişkenin virgülden sonra kaç basamağının yazdırılacağı ksayısı ile belirlenir.
Ancak w > k + 2 olmalıdır.

C#:
int i=583,j=1453; 
printf("%d %d\n",i,j);     /* serbest biçim */ 
printf("%5d %8d\n",i,j);     /* formatlı */

program parçasının ekran çıktısı şöyledir:

ÇIKTI
583 1453
583 1453

Birinci satır serbest formatta ikinci satır ise formatlı yazılmıştır.
i değişkeninin tuttuğu 583 sayısı %5d formatıyla yazdırılınca, bu sayı için 5 alan genişliği tanımlanır arakasından sağdan başlayarak sayı bu alana yazılır.
Benzer olarak j değişkeni, 8 alan genişlikli bir bölgeye yazılır.

ayrac.png


Gerçel sayılarda iş biraz daha karışık. Örnek vericek olursak:

C#:
int x=123.456;
 printf("%f\n",x); /* serbest biçim */ 
printf("%8.2f\n",x); /* formatlı */

program parçası çalıştırıldığında aşağıdaki sonuç gözlenir:

ÇIKTI
123.456001
123.46

Birinci satır serbest formatta ikinci satır ise formatlı yazılmıştır. İkinci satırda x değişkeni için ayrılan alan genişliği 8 ve noktadan sonra 2 basamağa kadar hassasiyet önemsenmiştir.
Dikkat edilirse noktadan sonra sayı uygun bir şekilde yuvarlanmış ve sayı sağa dayalı olarak yazılmıştır.

ayrac.png


printf() in formatlı kullanımı

C#:
/* 04prg04.c: Formatlı çıktı */ 

#include <stdio.h>

main() 
{ 
float x = 7324.25, y = 244.531;
 int i = 1299; 
char *c = "Merhaba C"; 

printf("%10d\n" ,i); 
printf("%10s\n" ,c); 

printf("%10.5f\n",x); 
printf("%10.1f\n",y); 

return 0; 
}

Çıktımız şu şekilde olacaktır:

1299
Merhaba C
7324.25000
244.5

ayrac.png


İyi Forumlar... Başka konularda görüşmek üzere:mum:...​
 
Seçkin Üye
Katılım
20 Şub 2019
Mesajlar
320
Çözümler
5
Tepki puanı
20
Ödüller
5
7 HİZMET YILI
Bu konu aksın devamı gelsin reis. Güzel ve anlaşılır bir eğitim dökümanı olusturuyorum sayende.
 
Bakın Beyler O Öyle Değil
Seçkin Üye
Katılım
29 Şub 2020
Mesajlar
311
Çözümler
1
Tepki puanı
12
Yaş
26
6 HİZMET YILI
Yeni şeyler öğrendim iyi oldu çok teşekkürler dostum
 
schizophren
Seçkin Üye
Katılım
16 Mar 2016
Mesajlar
315
Çözümler
1
Tepki puanı
9
Ödüller
9
10 HİZMET YILI
Yararlı paylaşımın için teşekkür ederim ellerine sağlık
 
Seçkin Üye
Katılım
15 Mar 2016
Mesajlar
310
Çözümler
2
Tepki puanı
7
Ödüller
7
Yaş
24
10 HİZMET YILI
gerçek sayılar sıkıntı gibi duruyor biraz :d
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst