AATTK - Anasayfa
AATTK

İnsanlara bilgi vermeyi amaçlayan bir blog.

C Programlama getchar(), putchar(), getche() ve getch() Fonksiyonları

2018-01-16 - #
C Programlama Dilinde klavyeden girilen verileri okutmak için getchar(), putchar(), getche() ve getch() kütüphane fonksiyonlarından birini kullanabiliyoruz.Bunları şimdi  sırasıyla inceleyelim.

Getchar() ve Putchar() Fonksiyonları : Klavye arabelleğini kullanan fonksiyonlardan biridir. Herhangi bir parametreye sahip değildir. Fonksiyon her çağrıldığında kullanıcıdan klavyeden girdiği ilk harfi alır ve geri döndürür. Klavye arabelleğini kullanan bir fonksiyon olması nedeniyle döndürme işleminden önce kullanıcıdan Enter tuşuna basmasını bekler. stdio.h isimli kütüphane dosyasında tanımlanmışlardır. putchar fonksiyonu ise, ekrana tek bir karakter yazar. putchar fonksiyonunun parametresi int bir değerdir, ancak bu değer fonksiyon tarafından unsigned char bir değere çevrilir. Eğer işlem başarılı olursa, putchar fonksiyonu parametre olarak verilen karakteri ekrana yazdırır.

Klavye Arabelleği Kavramı (Keyboard Buffer) : İşletim Sistemlerinde klavyeden yazılan harflerin depolandığı arabellektir. Kullanıcıdan metin girişi istendiğinde yazılan metin bu bellekte tutulur. enter tuşuna basılıncaya kadar programımız kullanıcı girişine tepki vermez. enter tuşuna basıldığında ise bellek boşaltılır. Biz klavyeden bir bilgi girdiğimizde aslında standart I/O dosyasına yazmış oluyoruz. yani bizim girdi ve çıktı olarak bildigimiz klavye, ekran aslında birer input ve output dosyalarını temsil etmektedir. C Programlama Dilinde bunları stdin dosyası ve stdout dosyası denir. stdin dosyasının varsayılan değeri klavye, stdout dosyası ise ekranı temsil eder. C Programlama Dili fonksiyonlarının büyük çoğunluğu bu şekilde çalışmaktadır.


Yukarıdaki örnekte, program klavyeden girilen karakteri getchar() fonksiyonu ile karakter değişkenine atar ve putchar() fonksiyonu ile değişken değerini ekrana yazar.

Getch() ve Getche() Fonksiyonları : getch fonksiyonu aynen getchar fonksiyonu gibi klavyeden yazılan tek bir karakteri okur. Klavyeden bir karakter girildiğinde okur ve bellek değişkenine atar. Ayrıca enter tuşuna ihtiyacı yoktur. Klavyeden girilen karakter unsigned char bir değer olarak okunur ve int bir değere çevrilir. Sonuçta, klavyeden okunan değer char bir değişkene atanır. Bu foksiyon klavye arabelleğini kullanmamaktadır. Atama sonrası kullanıcının girdiği karakter ekrana yazdırılmaz. getche fonksiyonu ise kullanıcı karakter değerini girer girmez enter tuşunun basılmasını beklemeden okunan değeri bize döndürür. getche fonksiyonuyla getch arasındaki farklılık okunan karakter değerini ekrana yazdırmasıdır.


Bu yazı alıntıdır:www.turkhackteam.org