2011-01-21 8 views
5

मैं थोड़ा कंसोल प्रोग्राम बनाने की कोशिश कर रहा हूं जो मूल रूप से कंसोल पोंग होगा। तो अभी मैं इस है:बिना कंसोल से कंसोल से इनपुट प्राप्त करना?

int main() 
{ 
    while(1) 
    { 
     clearScreen(); 
     restThread(100); 
    } 
    return 0; 
} 

केवल इनपुट मैं मतदान करने की आवश्यकता है उपयोगकर्ता एक या डी कुंजी दबाने के बाद से स्क्रीन साफ ​​कर दिया गया है। मुझे यह जानने की भी आवश्यकता होगी कि कुंजी कब जारी की जाती है। मैं भी इस क्रॉस प्लेटफॉर्म को करने की कोशिश कर रहा हूं।

तो वास्तव में मुझे केवल एक की आवश्यकता है (keyWasDown ('a')) {} फ़ंक्शन का प्रकार।

धन्यवाद

+1

कोई मानक तरीका नहीं है। आपके द्वारा प्राप्त किए गए कोई भी जवाब मंच-विशिष्ट होने जा रहे हैं। – GManNickG

उत्तर

7

शायद तुम kbhit (गैर अवरुद्ध) या getch (अवरुद्ध), दोनों <conio.h> से चाहते हैं। या <cstdio> से getchar भी है।

यदि आप प्रोग्राम को कीबोर्ड प्रेस के लिए प्रतीक्षा करना चाहते हैं, तो getch या getchar स्वयं ही करेंगे।

कार्यक्रम एक कुंजीपटल प्रेस, kbhit या तो getch या getchar पर्याप्त होगा के साथ संयुक्त के लिए प्रतीक्षा नहीं आप करते हैं चाहता हूँ।

हालांकि, जैसा कि जीएमएन ने कहा था, ये विधियां वास्तव में क्रॉस प्लेटफार्म नहीं हैं (यदि आप कभी भी विभिन्न प्लेटफार्मों पर इसे आजमाने का इरादा नहीं रखते हैं, तो यह वास्तव में मज़बूत है)। कंसोल गेम के लिए, आपको ncurses में रुचि रखने में रुचि हो सकती है।

+0

कौन सा ऑपरेटिंग सिस्टम? – Raedwald

+0

कम से कम विंडोज़। मुझे पता है कि यह मेरी लिनक्स मशीन पर काम नहीं करता है। –

3
 

#include <stdio.h> 
#include <conio.h> 

int main() 
{ 
    while(1) 
    { 
     clearScreen(); 

     if(kbhit()) 
     { 
      int const ch = getch(); 
      switch(ch) 
      { 
      case 0x61: printf("A was pressed!\n"); break; 
      case 0x64: printf("D was pressed!\n"); break; 
      } 
     } 

     restThread(100); 
    } 

    return 0; 
} 
 
संबंधित मुद्दे