C Programlama getchar(), putchar(), getche() ve getch() Fonksiyonları
Dikkat: Borland Turbo C ve GCC kulananlar için bu kütüphane standart olarak yüklü gelmeyecektir.
conio.h Windows platformu için yazılmış bir kütüphanedir. Windowsta program çalıştıktan sonra Terminal(Konsol, Uçbirim) Hemen kapanır. Bunu ekranda bekletmek içinde bu kütüphane içerisinde tanımlı olan bir tuşa basılana kadar bekleyen getch() fonksiyonu kullanılır.
C Programlama Dilinde klavyeden girilen verileri okutmak için getchar(), putchar(), getche() ve getch() kütüphane fonksiyonlarından birini kullanabiliriz.
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
#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;
}
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
#include <stdio.h>
int main(int argc, char** argv) {
char karakter;
karakter=getch();
printf("n girilen karakter:%c Program sonlandi.n",karakter);
return 0;
}
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;
}
int main(int argc, char** argv)
{
char karakter;
karakter=getche();
printf("n girilen karakter:%c Program sonlandi.n",karakter);
return 0;
}
Kaynaklar
Yorumunuzu Ekleyin