C++'da getch işlevi

C Da Getch Islevi



C ve C++ programlama dilleri alanında farklı doğal yöntemler ve kütüphaneler kullanılmaktadır. Bu yazımızda C++'ın getch() metodunu yakından inceleyeceğiz. Klavyemizden bir dizi karakter okumak istediğimizde getch() işlevi kullanılır ve ekrana bir çıktı yansıtmaz. Burada, farkındalığınız için bu getch() fonksiyonunu geçerli örnekler ve kanıtlar yardımıyla doğru bir şekilde inceleyeceğiz. Bu yöntem çoğunlukla C++'daki konsol tabanlı (çıkış) senaryolarında kullanıcıdan girdi almak için kullanılabilir.

C++'da Getch() Nedir?

C++'da “cstdio” başlık dosyası isimli kütüphane çoğunlukla getch() fonksiyonu için kullanılır. Getch() aynı zamanda “conio.txt” dosyasında da tanımlanmıştır. h' başlık dosyası derleyiciye özgüdür ve standart olmayan bir işlevdir çünkü tam olarak C++ kitaplık standardının bir parçası değildir. Getch'in kısaltması “get karakter” olup, kullanıcı girişi geçene kadar bir süre çıkış ekranında kalmak için kullanılır.

Bu kavramı örnekler yardımıyla doğru bir şekilde detaylandıralım. Burada uygun senaryoların yardımıyla C++'daki getch() yönteminin söz dizimini, kullanımını ve davranışını öğreneceğiz.







Senaryo 1: Menü Odaklı Bir Uygulamada Getch() Nasıl Kullanılır

Farklı seçenekleri listeleyeceğimiz menü odaklı küçük uygulama hakkında konuşalım. Her seçenek bir restoran menüsü gibi farklı amaçlara yönelik tasarlanmıştır. Bu örneğin kod parçacığı aşağıdaki ekte yer almaktadır:



#include
#include
#include
kullanarak ad alanı std ;
int ana ( ) {
karakter seçenek ;
std :: cout << 'Restoran menüsü: \N ' ;
std :: cout << '1. Seçenek 1: Pizza \N ' ;
std :: cout << '2. Seçenek 2: Hamburger \N ' ;
std :: cout << '3. Seçenek 3: Kek \N ' ;
std :: cout << 'Seçimini gir: ' ;
seçenek = getch ( ) ; // kullanıcı girişi verir ve getch() girişi enter tuşuna basmadan okur
anahtar ( seçenek ) {
dava '1' :
std :: cout << ' \N 'Pizza'yı seçiyorsunuz \N ' ;
kırmak ;
dava '2' :
std :: cout << ' \N 'Burger'ı seçiyorsunuz \N ' ;
kırmak ;
dava '3' :
std :: cout << ' \N 'Kek'i seçiyorsunuz \N ' ;
kırmak ;
varsayılan :
std :: cout << '\Seçenek yok - Sipariş yok \N ' ;
}
geri dönmek 0 ;
}

Öncelikle programın başlangıcında gerekli standart kütüphaneleri bildiriyoruz. Ana fonksiyonun içinde bir mantık oluşturuyoruz ve programın ana fonksiyonu içindeki her şey çalıştırılabilir olacak. Burada veri türü karakter olan bir “seçim” değişkeni tanımlıyoruz. Daha sonra konsol ekranında görünen bir menü oluşturuyoruz. Kullanıcıya “Pizza”, “Burger”, “Pasta”, “Seçenek Yok” gibi farklı seçeneklerden oluşan bir “Restoran Menüsü” sunuyoruz.



Kullanıcı girişi bu değişkende saklandığı için getch() değişkenini değişken seçimine iletiyoruz ve seçilen seçeneğe göre çıktıyı otomatik olarak görüntülüyoruz. Menüden bir seçenek seçmek için switch() fonksiyonunu kullanırız ve bu fonksiyona “choice” komutunu geçiririz. “Switch” yönteminde her seçeneğe karşı ayrı ayrı dava açıyoruz. C++'daki “switch” yönteminde, her vakanın sonunda her zaman, ifadenin sonunu belirten bir break ifadesi kullanılır. Derleyip çalıştırdığımızda, çıktı aşağıdaki ekteki konsol ekranında gösterilir:





Artık getch() fonksiyonu burada çalışacaktır. Kullanıcı seçime girdiğinde getch() işlevi bu girişi anahtar durumuyla karşılaştıracak ve çıkışı veya seçeneği otomatik olarak ve anında konsolda gösterecektir.



Daha önce ekte yer alan ekran görüntüsünde kullanıcı “2” seçeneğini giriyor ve çıktı ekranda “Sen ‘Burger’ı seçiyorsun” şeklinde çıkıyor. Bu örnekte getch()'in çalışması, kullanıcı girdiyi girdiğinde ve konsolda gösterilen kullanıcı tarafından verilen girdi yerine konsol ekranında beklenen çıktı görüntülendiğinde temizlenmiştir.

Senaryo 2: Getch() Kullanarak Kullanıcının Gizli Parolasını Kabul Edin

Bu senaryoda kullanıcının şifreyi nasıl gizlice girebileceği ve giriş şifresini konsol ekranında nasıl gösterebileceği konseptini inceleyeceğiz. Burada, kullanıcı girişi geçene kadar ekranı tutmak için getch() fonksiyonunu kullanıyoruz. İmleç girişi konsol ekranında görüntülemediğinden getch() işlevinin kullanıcı girişini görüntülemediğini unutmayın. Bu senaryonun kod pasajında ​​şu şekilde bahsediliyor:

#include
#include
#include
#include
#include
int ana ( )
{
karakter pas [ 8 ] ;
int M ;
std :: cout << '8 haneli şifreyi girin: ' ;
için ( M = 0 ; M <= 7 ; M ++ ) {
pas [ M ] = getch ( ) ;
std :: cout << '*' ;
}
pas [ M ] = ' \0 ' ;
std :: cout << ' \N ' ;
std :: cout << 'Girilen şifreyi göster:' ;
için ( M = 0 ; pas [ M ] ! = ' \0 ' ; M ++ )
std :: cout << ( '%C' , pas [ M ] ) ;
getch ( ) ;
geri dönmek 0 ;
}

Verilen kodda görüldüğü gibi getch() fonksiyonunun kullanımı ve çıktının ekranda görüntülenmesi için gerekli olan standart kütüphaneleri ekleyin. Bu programın ana işlevi, kullanıcıdan şifre girdiğimiz ve şifreyi ekranda gösterdiğimiz farklı adımları içermesidir. Veri tipi “Char” olan 8 elemanlı dizi değişkenine ihtiyacımız var. Bunun dışında yineleme değerlerini saklayan bir değişkene de ihtiyacımız var.

Burada dizi boyutu “8” ise kullanıcının her giriş sayısını okuyan bir “For Loop” kullanıyoruz. Daha sonra kullanıcı döngü yardımıyla giriş konsolu penceresinde sadece şifre tuşuna basar. Bu “for” döngüsünün içinde getch() fonksiyonunu passw[] dizisine aktarıyoruz. Bu işlev, kullanıcı parolanın 8 karakterini girene kadar ekranda kalır. Her döngü sayımında, her kullanıcı girişi sayısına “*” yazdırılır ve döngü burada kapatılır.

Bundan sonra sadece passw[]'dan değerleri alarak gizli şifrenin kendisini gösteren “for” döngüsünü tekrar kullanıyoruz. Getch, kullanıcı girişi dizide mükemmel bir şekilde saklanıncaya ve şifreyi ekranda görüntüleyene kadar ekranı otomatik olarak tutar.

Programı çalıştırmak ve çıktıyı ekranda göstermek için “Compile and Run” seçeneğine tıklayın.

Ekrana 8 haneli şifreyi girin. 8 haneli giriş tamamlandığında, yazılan şifreyi otomatik olarak konsol penceresinde görüntüler. Klavye tuşlarına 8 kez basın ve şifreyi yazın.

Çıkış ekranı getch() işlevi nedeniyle donuyor. getch() işlevi, daha önce eklenmiş ekran görüntüsünde gösterildiği gibi yalnızca giriş verilerini ekrana yazdırır.

Çözüm

Sonuç olarak getch(), C ve C++ programlamanın en önemli işlevidir ve kullanıcının klavyeden girişi görüntülemeden veya imleç ekranda bir girişi göstermeden dondurmasını kolaylaştırır. Standart olmayan kütüphanesi nedeniyle programda getch() kullanmazsak, programın çalışması için gerekli süre milisaniye cinsinden olana kadar konsol penceresi görüntülenir. Bu yazımızda bu yöntemi uygun kod örnekleriyle anlattık.