folder Tahribat.com Forumları
linefolder C - C++
linefolder C Dilinde Foksiyon(Yardım)



C Dilinde Foksiyon(Yardım)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    JUSTICE
    JUSTICE's avatar
    Kayıt Tarihi: 08/Eylül/2007
    Erkek
    C dilinde entera basmadan girdi okuyacak foksiyon lazım. Yılan oyunu yapıcamda scanf getchar fln olmuyo oyun durup durup ilerliyor. Programın ilerleyişini bozmuyacak ama girlince karakter okuyan cinsten bişi lazım
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    JPriest
    JPriest's avatar
    Kayıt Tarihi: 09/Mart/2007
    Erkek

    Difference betn getch(),getche(),getchar() functions

    getchar
    This is a standard function that gets a character from the stdin.

    getch
    This is a nonstandard function that gets a character from keyboard, does not echo to screen.

    getche
    This is a nonstandard function that gets a character from the keyboard, echoes to screen.

    Use getchar if you want it to work on all compilers. Use getch or getche on a system that supports it when you want keyboard input without pressing [Enter].

    And note that the return value of all three is int! You need this to properly check for EOF.

     ..............................

    :) 


    Sen hiç kaval çaldın mı?
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SpArK
    SpArK's avatar
    Kayıt Tarihi: 17/Temmuz/2005
    Erkek

    Stigmata dostum sana gereken şeyleri vermiş fakat oyun yapmak istediğini anlıyorum eventdriven bir yapisi olucak galiba programının + keyboard dan da veri okucak 

    ve bu veriye göre hareket etçeğinden belki bir tuşu direk okumak yerine  C# taki gibi click event gibi birşey yapabilirsin.

    Prototype: int kbhit(void);
    Header File: conio.h

    int main()
    {
        while(1)
        {
           if(kbhit())
           {
              printf("Bir tuşa bastin \"JUSTICEtr \" \n");
           }
        }
    }

    burda sonsuz döngüde bekliyor program , taki klavyeden bir tuşa basildiği ana kadar.  kbhit()  fonksiyonu tuşa basildiği anda çalisan birşeydir.Bunu C# ta button ların click evetine benzetiyorum :) şimdi bu fonksiyonla keyboarda basildiğini öğrenebilirsin fakat veriyi okuyamazsın.Onun için ise Stigmata arkadaşımın verdiği fonksiyonları kullanıcaz beraberce.

    yani şöyle olucak

    while(1)

    {

      if(kbhit())

      {

         printf("Bir tuşa bastin \"JUSTICEtr \" \n");

         printf("Bastigin tuş  %c dir.\n", _getch() );   // stdin den veriyi okuyor _getch() fonksiyonumuz

       }

    }

    Şimdi totalde elimizde ne oldu , klavyeyenin bir tuşuna basildiğini öğrenebildin enter olmadan + yine enter olmadan girilen inputu öğrenmiş oldun.

    Fakat galiba , kbhit() fonksiyonumuz unix ve linuxlarda yoktu hatirladigim kadariyla.Onun yerine linuxta kb_getc() fonksiyonunu kullanabilirsin.bunu yazarken 

    bir site buldum hemen linux veya unix üzerinde çalışacaksan => http://www.pwilson.net/kbhit.html  bu siteye bir bak .

    Windows üzerinde çalışacaksan  http://msdn.microsoft.com/en-us/library/58w7c94c(VS.80).aspx  Microsoftun MSDN inden araştırmanı tavsiye ederim bütün 

    fonisiyon ve tiplerini.

Toplam Hit: 1997 Toplam Mesaj: 3