▃ ▅ ησ ♥ яєѕρєcт ▅ ▃
Süper Üye
Formatlı Çıktı
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
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
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
/* 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;
}
ÇIKTI
1299
Merhaba C
7324.25000
244.5
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ğı k sayısı ile belirlenir. Ancak w > k + 2 olmalıdır.
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.
Gerçel sayılarda iş biraz daha karışık. Örneğin: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.
Son olarak formatlı çıktı ile ilgili bir örnek Program 4.4'de verilmiştir. İnceleyiniz.
Bağlantıları görmek için lütfen
Giriş Yap
printf() in formatlı kullanımı01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
/* 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;
}
ÇIKTI
1299
Merhaba C
7324.25000
244.5