C Programlamaya Giriş – III

C Programlamaya Giriş – III

31

İkinci yazımızı okumadıysanız aşağıdaki linki okuduktan sonra bu yazımızla okumaya devam edebilirsiniz:

http://www.bosbatarya.com/c-programlamaya-giris-ii/

Eğer printf ifadesi \ gördüğünde bir işlem yapmaya çalışacaksa ekrana \ işaretini nasıl yazdıracağız? Bu durumda yapmamız gereken \\ ifadesini kullanmaktır. Böylece ekrana \ ifadesini yazdırabiliriz. printf ile tırnak işaretini yazdırmak da bir sorun gibi gözükmektedir çünkü tırnak işareti printf ile kullanıldığında, yazdırılacak karakterlerin sınırlarını belirler. printf ile tırnak işareti yazdırmak istersek, \” çıkış sırasını kullanmalıyız.

Kullanılan getchar() ifadesi standard giriş/çıkış kütüphanesi içerisinde bulunan karakter alma fonksiyonudur. Eğer bu kodu eklemezseniz çıktı ekranı ekranda 1 sn’den çok daha az süre ekranda durup gidecektir. Bu satır sayesinde bilgisayar kullanıcıdan bir karakter girmesini bekler. Bu sayede ekran çıktısı ekranda tutulmuş olur.

return 0; ifadesi önişlemciye bu programın başarılı bir şekilde tamamlandığını bildirir.

Küme parantezi, }, main fonksiyonunun sonuna ulaşıldığını gösterir.

Genel olarak yapılan hatalardan biri direk ekrana yazdırmayı düşünerek print kelimesini yazmaktır. Buna dikkat etmenizi tavsiye ederiz.

Çok önemli konulardan biri printf ve scanf fonksiyonlarının C programlama dilinin bir parçası olduğunu zannetmektir. Aslında bu iki fonksiyon C programlama dilinin bir parçası DEĞİLDİR! Bu yüzden, derleyici printf ve scanf yanlış yazılırsa HATA BULAMAZ! Derleyici, printf gibi bir kütüphane fonksiyonu gördüğü zaman makine diline çevrilmiş programda boşluk bırakır ve bu boşluğa kütüphaneye gidileceğini belirten bir işaret koyar. Çünkü, derleyici kütüphanenin nerede olduğunu bilemez. Fakat linkage(bağlayıcı) bilir. Böylelikle, bağlayıcı çalıştığında makine diline çevrilmiş programdaki boşluklara uygun kütüphane fonksiyonlarının kodları yerleştirilir ve makine diline çevrilmiş program tamamlanır. Artık program çalıştırılmaya hazırdır. Bağlanmış programlara executable program(çalıştırılabilir) denir. Eğer fonksiyon ismi yanlış yazılırsa hatayı linkage(bağlayıcı) bulabilir. Çünkü programda yazılan fonksiyon ismiyle kütüphane fonksiyonunun ismini eşleyemez ve hata verir.

Yukarıda bahsini ettiğimiz çıkış sırası yapılarından bazılarını aşağıda verelim:

  • \n  –> Yeni satır. İmleci yeni satırın başına geçirir.
  • \t   –> Yatay sekme. İmlecin bir sonraki sekme başlangıcına taşır.
  • \a  –> Alarm.
  • \\   –> Ters bölü. printf içinde ters bölü karakterini yazdırır.
  • \”  –> Tırnak. printf içinde tırnak karakterini yazdırır.

printf fonksiyonu kullanılarak aynı çıktıyı üreten program yukarıda verilmiştir. Peki neden aynı çıktıyı veriyor? Çünkü her printf, kendi mesajını yazdırmaya, eğer bazı özel çıkış dizileri kullanılmadıysa, , diğer printf‘in kaldığı yerden başlar.

Yukarıdaki kod ise tek bir printf fonksiyonu kullanılarak birden fazla satırda yazdırmayı görmekteyiz. Burada printf fonksiyonu önce ekrana C Programlamaya yazdıktan sonra gördüğü yeni satır ifadesiyle yeni satıra geçer ve yazmaya kaldığı yerden devam ederek ekrana Hos Geldiniz yazısını yazar ve en sonunda imleci yeniden bir satır aşağıya alır ve program sonlanır.

DIPNOT:

1-> Yazdırma işlemi yapan bir fonksiyon tarafından yazdırılan son karakter (\n) olmalıdır. Bu sayede fonksiyonun, ekran imlecini yeni satırın başlangıcına götürmesi sağlanır. Bu tarz bize, yazılım geliştirmemizde temel amaç olan yazılımın tekrar kullanılabilirliğini artırma fırsatı verir.

2-> Fonksiyon Scope’larının içini yazmaya, küme parantezlerinden daha içerde başlamak (3 boşluk bırakarak) fonksiyon gövdesini daha belirgin hale getirir. Bu sayede, programımız daha okunur hale gelecektir.

3-> C programlama dili İNGİLİZCE‘dir. Bu yüzden ekran çıktısı verirken veya herhangi bir ifade kullanırken TÜRKÇE KARAKTERDEN KAÇININIZ! Eğer “İ” harfini yazdırmaya çalışırsanız C programı İ’yi ekrana yazamayacaktır. Çünkü İ harfi ingilizce alfabesinde bulunmamaktadır! Buna dikkat etmeliyiz!

Leave A Reply

Your email address will not be published.