getch() Fonksyonunun Linux Ortamındaki Karşılığına Dair Basit Bir Örnek

Başlatan noktakom, 09 Mart 2011 - 15:57:32

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

noktakom

Fonksyonu harf değil de sayı almak için kullanmak isterseniz, fonksyonun geri dönüş değerinin olması gerekenden 48 fazla olacağını unutmayın...

#include <stdio.h>
#include <termios.h>
#include <unistd.h>

int mygetch(void);

int main()
{
char y;
printf("Bir harf giriniz\n");
y=mygetch();
printf("Girilen harf:%c\n",y);
return 0;
}

int mygetch(void)
{
struct termios oldt,newt;
int ch;
tcgetattr( STDIN_FILENO, &oldt );
newt = oldt;
newt.c_lflag &= ~( ICANON | ECHO );
tcsetattr( STDIN_FILENO, TCSANOW, &newt );
ch = getchar();
tcsetattr( STDIN_FILENO, TCSANOW, &oldt );
return ch;
}

sem

Teşekkürler paylaşım için... Yazarı belli midir acaba fonksiyonun ya da size mi aittir? Deneme fırsatım olmadı gerçi ama güzel gibi gözüküyor =)
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?


sem

=)

conio.h'ı getch için kullanmak zorunda kalanlar için güzel bir çözüm... Paylaşım için teşekkürler...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

noktakom

Rica ederim bir iki kelime de ben birşeyler ekleyeyim istedim :) hep bana  hep bana olmuyor :)

conio.h yok diye biliyorum linux'ta... çünkü programa include etmek istediğimde conio.h: no such file or directory gibi bir hata alıyordum. Zaten bu yüzden böyle birşeyi araştırma ihtiyacı hissettim...

sem

Evet normalde conio.h Unix/Linux sistemlerde  yok. Fakat sonradan yazılmış olarak indirilebiliyordu yanlış hatırlamıyorsam. Denemediğin için kullanışlı ya da yetersiz olmuş gibi yorum yapamıyorum. Sizin için de getch() için gerekli ise sanırım o sorununuz da çözülmüş...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?