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

C Programlama 


C Programlama Dilinde klavyeden girilen verileri okutmak için getchar(), putchar(), getche() ve getch() kütüphane fonksiyonlarından birini kullanabiliriz. Şimdi, bu fonksiyonları sıra ile incelemeye çalışalım.

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.

Örnek getchar() ve putchar() Fonksiyonları
#include <stdio.h>

int main(int argc, char** argv)
{
    char karakter;
    //klavyeden bir karakter oku ve enter tusunu bekle//
    printf("bir karakter giriniz ve enter tusuna basiniz:");
    karakter=getchar();
    printf("girilen karakter:");
    //okunan karakteri ekrana yazdir//
    putchar (karakter);
    return 0;
}
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.

Örnek getch() ve getche() Fonksiyonları
#include <stdio.h>

int main(int argc, char** argv)
{
    char karakter;
    karakter=getch();
    printf("\n girilen karakter:%c Program sonlandi.\n",karakter);
    return 0;
}

#include <stdio.h>

int main(int argc, char** argv)
{
    char karakter;
    karakter=getche();
    printf("\n girilen karakter:%c Program sonlandi.\n",karakter);
    return 0;
}