tuş takımı ile girilen değeri bir değişkene atamak

Başlatan said01, 12 Kasım 2014, 22:04:59

said01

selamun aleykum. tuş takımıyla rakam girişi yapan örnek programlar mevcut lakin sayı girişi nasıl yapılır onunla ilgili örnek pek göremedim. bu konuda bilgisi olan arkadaşlar yardımcı olurlarsa sevinirim. allah razı olsun...

hasankara

gelen tüm karakterleri sırası ile bir diziye kaydedip daha sonra diziyi sscanf e parametre olarak girip formatını belirtiyorsun. o dizi içinden decimal çıktıyı sana sscanf veriyor. karakterlerden enter gelene kadar kayıt işlemi sürer, kayıt bitince sscanf le çözümlemeye gidersin. sscanf fonksiyonu stdio.h içerisinde include etmen gerekir.

tuş takımından veri toplama için, bastığın tuşun sayısal karşılığını kendin önce ascii e çevirmen gerekebilir ve bu şekilde dizi içerisine kaydetmen gerekebilir.
yani tuş takımında "tuş:değer" formatında örnek verecek olursam "0: 0", "1: 1", "2: 2" ... "enter: 10" bilgilerini veriyorsa bunları şöyle değerlendirebilirsin;

unsigned int sayi_al(void) {
    unsigned int sonuc;
    char dizi[30]; // pes pese 30 karakter kaydedebilirsin
    char nchr, sayac = 0;

    while (sayac < (sizeof (dizi)) - 2) {
        nchr = getch_ttakim();
        if (nchr == 10) {// enter gelirse
            sscanf(dizi, "%d", &sonuc);
            return sonuc; // hesaplanan sonuc dondurulur
        } else if (nchr >= 0 && nchr <= 9) {// sayi gelirse
            dizi[sayac] = nchr + '0'; // tus takimi formatini ascii formatina donusturerek kaydediyoruz
            sayac++;
        }
    }
    return 0; // sigmayacak kadar cok karakter girilirse 0 dondurulur
}


Salih

Alıntı yapılan: said01 - 12 Kasım 2014, 22:04:59
selamun aleykum. tuş takımıyla rakam girişi yapan örnek programlar mevcut lakin sayı girişi nasıl yapılır onunla ilgili örnek pek göremedim. bu konuda bilgisi olan arkadaşlar yardımcı olurlarsa sevinirim. allah razı olsun...

sayi diye bir değişken tanımla, ilk girilen değeri sayi'ya aktar. İkinci girilen rakamı 10 ile çarp sayi ile topla, Üçüncü girilen
rakamı 100 ile çarp sayi'ya ekle. Bu mantığı anladın ise istediğin kadar hane ekleyebilirsin.