Giriş Düzenleme

Giriş Düzenleme

Giriş Düzenleme Başlık Görseli

     Giriş fonksiyonları sırasıyla, verileri standart giriş akışından alırlar ve veriyi standart çıkış akışından çıkartırlar. scanf  biçimlendirme yeteneklerini detaylı bir şekilde göreceğiz.

Giriş Biçimlendirme

     Giriş biçimlendirme, scanf sayesinde yapılır. Her scanf ifadesi, girilecek verinin biçimini tanımlayan bir biçim kontrol dizesi içerir. Biçim kontrol dizesi dönüşüm belirteçleri ve bilgi karakterleri içerir.  scanf fonksiyonu aşağıdaki giriş biçimlendirme yeteneklerine sahiptir:

  1. Her tipte veriyi almak.
  2. Bir giriş akışındaki belli karakterleri almak.
  3. Giriş akışındaki belli karakterleri atlamak.

scanf ( biçim kontrol dizesi, diğer argümanlar);

biçim kontrol dizesi: Verinin biçimini tarif eder 
diğer argümanlar: Verinin depolanacağı gösteren göstericilerdir. 

d          Onluk sistemde işaretli  tamsayı okur.
i           Onluk, sekizlik ya da onaltılık sistemde işaretli tamsayı okur.
o          Sekizlik sistemde bir tamsayı okur.
u          Onluk sistemde işaretsiz bir tamsayıyı okur.
x-X      Onaltılık sistemde bir tamsayı okur.
h-l       Herhangi bir tamsayı dönüşüm belirtecinden önce                                yerleştirildiğinde,    short ya da long bir tamsayının girileceğini    belirtir.
l-L       double ya da long double bir değerin girileceğini belirtir.
c          Bir karakter okur. Sonlandırıcı null (‘\0’) eklenmez.
s          Bir string okur. stringi ve sonlandırıcı null karakteri depolamaya yetecek kadar
p         Bir adresi okur.
n         Tamsayıyı gösteren bir göstericidir.
%        Girilen verideki yüzde işaretini(%) atlar.

Tamsayı Girişi

  1. #include <stdio.h>
  2.  
  3. int main( )
  4. {
  5. int a, b, c, d, e, f, g;
  6.  
  7. printf( "Yedi tamsayi girin: " );
  8. scanf( "%d%i%i%i%o%u%x", &a, &b, &c, &d, &e, &f, &g );
  9. printf( "Girilen sayilar, onluk sistemde tamsayilar"
  10. "olarak gosterilecek:\n" );
  11. printf( "%d %d %d %d %d %d %d\n", a, b, c, d, e, f, g );
  12.  
  13. return 0;
  14. }

Ondalıklı Sayı Girişi

  1. #include <stdio.h>
  2.  
  3. int main( )
  4. {
  5. double a, b, c;
  6.  
  7. printf( "Uc ondalikli sayi girin: \n" );
  8. scanf( "%le%lf%lg", &a, &b, &c );
  9. printf( "Farkli ondalikli\n" );
  10. printf( "sayi gosterimleri:\n" );
  11. printf( "%f\n%f\n%f\n", a, b, c );
  12.  
  13. return 0;
  14. }
Tarama Kümesi Kullanma

     Tarama kümesi, karakter almayı tarama kümesi içinde yer almayan ilk karakterle karşılaşıldığında durdurur. Eğer giriş akışındaki ilk karakter tarama kümesindeki karakterlerle eşleşmezse, dizide yalnızca null karakter depolanır.  [aeiou] tarama kümesini kullanarak, giriş akışında sesli harfleri taramaktadır.

  1. #include <stdio.h>
  2.  
  3. int main( )
  4. {
  5. char z[ 9 ];
  6.  
  7. printf( "Bir string girin: " );
  8. scanf( "%[aeiou]", z );
  9. printf( "\"%s\" girdiniz.\n", z );
  10.  
  11. return 0;
  12. }
Ters Tarama

     Ters bir tarama kümesi içinde bulunan bir karakterle karşılaşıldığında giriş sonlanır. 

  1. #include <stdio.h>
  2.  
  3. int main( )
  4. {
  5. char z[ 9 ] = { '\0' };
  6.  
  7. printf( "Bir string girin: " );
  8. scanf( "%[^aeiou]", z );
  9. printf( "Girilen string: \"%s\"\n", z );
  10.  
  11. return 0;
  12. }
Alan Genişliği

     Verinin yazdırılacağı alanın kesin boyutları alan genişliği ile belirlenir.

  1. #include <stdio.h>
  2.  
  3. int main( )
  4. {
  5. printf( "%4d\n", 1 );
  6. printf( "%4d\n", 12 );
  7. printf( "%4d\n", 123 );
  8. printf( "%4d\n", 1234 );
  9. printf( "%4d\n\n", 12345 );
  10.  
  11. printf( "%4d\n", -1 );
  12. printf( "%4d\n", -12 );
  13. printf( "%4d\n", -123 );
  14. printf( "%4d\n", -1234 );
  15. printf( "%4d\n", -12345 );
  16.  
  17. return 0;
  18. }

Çeşitli tiplerdeki verileri yazdırmak için duyarlık kullanmak

  1. #include <stdio.h>
  2.  
  3. int main( )
  4. {
  5. int i = 873;
  6. double f = 123.94536;
  7. char s[ ] = "Turk Muhendis";
  8.  
  9. printf( "Tam sayilarda duyarlik kullanimi\n" );
  10. printf( "\t%.4d\n\t%.9d\n\n", i, i );
  11. printf( "Ondalikli sayilarda duyarlik kullanimi\n" );
  12. printf( "\t%.3f\n\t%.3e\n\t%.3g\n\n", f, f, f );
  13. printf( "Stringlerde duyarlik kullanimi\n" );
  14. printf( "\t%.11s\n", s );
  15.  
  16. return 0;
  17. }

Noktadan sonra 3 basamak,Sayı sağa dayalı bir biçimde, 9 basamak genişliğinde

printf (%9.3f, 123.456789 ) ; 

alan genişliği 7, duyarlık için 2 kullanır ve sağa dayalı bir biçimde 98.74 yazdırır.

printf (%*.*f ” , 7 , 2 , 98,736 ) ;
0 0 votes
Article Rating
Abone ol
Bildir
0 Yorum
Satır İçi Geri Bildirimler
Tüm yorumlar
0
Düşüncelerinizi paylaşınx