Klavyeden Hangi Tuşa Basıldığını Kontrol Etmek

C’de string ifadelerle çalışılırken genellikle ASCII kodlarına başvurulur. Harfler ya da simgeler yerine klavyede yer alan Home, Insert, Del, Fonksiyon tuşları gibi kısayollar için ise genişletilmiş ASCII kod listesinden yararlanılır.

Burada iki fonksiyondan yararlanılır. Birincisi kbhit() fonksiyonudur. Bir tuşa basıldıysa 1, basılmadıysa 0 değeri döndürür. Döngü içi kontrollerde kullanılabilir. Diğeri olan getch(void) fonksiyonu da herhangi bir karakter alabilir. Alınan tuş kullanılmak istenirse girdi değişkeninde olduğu gibi atama işleminde kullanılabilir.

char girdi;                  
    while (1==1){
          girdi = getch();
		if (kbhit()) { 
                girdi = getch();
				switch (girdi) {

		case 77: 
			printf("Sag ok tusuna bastiniz.\n");	
                        break;

				case 27:
                         printf("Esc tusuna bastiniz.\n");
                         break;

                case 83:
                         printf("Delete tusuna bastiniz.\n");
                         break;

                case 073:
                         printf("F1  tusuna bastiniz.\n");
                         break;

                case 71:
                         printf("Home tusuna bastiniz.\n");
                         break;	

                case 79:
                         printf("End tusuna bastiniz.\n");
                         break;	
				}
		}
    }
	return 0;
}

Diğer kısayol tuşları için genişletilmiş listeye ve tüm listeye buradan ulaşabilirsiniz.

Reklamlar