DERS6 - C/C++ Ders Anlatımı - C Programlama Dilinde Temel Giriş Çıkış (G/Ç) Fonksiyonları - I/O Functions in C - Printf and Scan

C programlama dili kullanıcı ile interaktif olarak bilgi girişi ve çıkışına izin veren orta seviyeli bir dildir.

Bunun anlamı çalışma anında bazı değerleri ekrana veya yazıcıya yazdırabilir veya klavye gibi bir giriş aygıtından veri girerek bunu programımızda kullanabiliriz.

Bu işlemler bazı temel G/Ç fonksiyonları ile yapılır. Bu dersimizde bahsedeceğimiz fonksiyonlar

1.printf  -  ekrana formatlı yazdırma fonksiyonu

2.scanf - ekrandan formatlı veri okuma fonksiyonu

printf

Bu fonksiyonun amacı ekrana yazı yazdırmaktır. Bunu

printf("Hello World");

şeklinde formatsız olarak direk kod içerisinde string şeklinde veya

char selamlama[11]="Hello World";
printf("%s",selamlama);

şeklinde formatlı olarak yazdırabiliriz. Formatlı yöntem sadece el ile girdiğimiz yazıları değil aynı zamanda tamsayı, karakter, float,double tipindeki değişkenlerimizin de ekrana yazdırılmasını sağlarlar.

 Printf fonksiyonunu daha iyi anlayabilmek için örnek program kodları yazalım ve çıktılarını inceleyelim.

void main(void)
{
int bu_yil=2009;
float dolar=1.552;

printf("www.bfgyazilim.com\n");
printf("C programlama ogreniyorum\n");

printf("%d\n",bu_yil);
printf("%f\n",dolar);

printf("%d yilinin haziran ayinda dolar %f degerindeydi.",bu_yil,dolar);
}

Yukarıda 6 ve 7. satırlarda formatsız olarak printf fonksiyonu kullanılmış ve istenen yazılar ekrana yazdırılmıştır.

9 ve 10. satırlarda formatlı yazılar yazdırılmıştır. Dikkat ederseniz printf fonksiyonu içerisindeki çift tırnaklar arasında yazdırılacak olan format %d, %f  şeklinde belirtilmiştir. Bunlara tip karakteri denir. Çalışma anında bu tip karakterleri çift tırnaklardan sonraki virgülden sonraki değişkenlerin değerlerini alarak ekrana yazdırılır. Böylece dinamik olarak ekrana birşeyler yazdırılır.

Satır 11 ise formatlı yazdırmaya bir örnek daha görüyoruz. Burada önemli olan tip karakterleri ile değişkenlerin yazımlarının sıralı olmasıdır.

Yararlı olması açısından aşağıdaki tabloyu inceleyiniz.

 

Tip Karakteri Anlamı Tip
%d işaretli ondalık tamsayı formatı int, short
%f Gerçel sayı (kayan noktalı) formatı float, double
%ld uzun işaretli ondalık tamsayı formatı long
%u işaretsiz ondalık tamsayı formatı unsigned int, unsigned short
%s karakter dizisi (string) formatı char
%lu işaretsiz uzun tamsayı formatı unsigned long
%c tek bir tane karakter formatı char

 

scanf

 Klavyeden formatlı veri girmemizi sağlar.

scanf fonksiyonu 2 kısımdan oluşur.

ilk kısmı çift tırnaklar arasına okunacak değerlerin formatlarının belirtirldiği kısımdır. Buraya tip karakterleri printf fonksiyonunda olduğu gibi yazılır. İkinci kısım ise okunan değerlerin hangi değişkenlere atanacağının belirtildiği kısımdır.

Aşağıdaki örnekte kullanımını inceleyelim.

void main(void)
{
int sayi1,sayi2;

printf("birinci sayiyi giriniz:");
scanf("%d",&sayi1);

printf("ikinci sayiyi giriniz:"); 
scanf("%d",&sayi2);

printf("Toplam=%d",sayi1+sayi2);
}

Örneğimizde 6. ve 9. satırlardaki scanf fonksiyonları ile tamsayı tipinde değerler klavyeden giriliyor, sayi1 ve sayi2 değişkenlerine bu değerler atanıyor. En son da printf fonksiyonunda bu iki sayının toplama dinamik olarak gösteriliyor. Yani biz klavyeden farklı sayılar girersek toplamın sonucu da farklı olacaktır. Bu program klavyeden girilen 2 sayının toplam ını ekrana yazdıran program olmuş oldu.

Dikkat etmemiz gereken çok önemli ve çoğu zaman unutulan nokta değişken isimlerinden önce "&" (ampersand,adres) işaretini kullanmamız. Bunun anlamı klavyeden okunan değer değişkenin adresine atanacaktır. "&" işaretini unutursak scanf fonksiyonu doğru çalışmayacaktır.

Oruçreis Mah. Tekstilkent Ticaret Merkezi B3 Blok NO:89 ESENLER/İSTANBUL
TEL:  0212 438 64 72 - 0212 853 36 06 - FAKS:0212 438 64 73
Web Tasarım - BFG Yazılım 

Evqolic.com Evinizin Alışveriş Merkezi