2009-07-25 24 views
15

श्रापों (ncurses) के माध्यम से तीर कुंजियों से इनपुट प्राप्त करने का प्रयास करने में यह KEY_UP आदि के रूप में नहीं पकड़ेगा। मैंने एक असली तर्क के साथ कीपैड फ़ंक्शन का उपयोग किया लेकिन अभी भी एक बच निकला अनुक्रम लौटाता है। मैं getch() द्वारा दिए गए मानों के माध्यम से कैसे जा सकता हूं और तीर कुंजियों को विशेष रूप से पकड़ सकता हूं?शापित तीर कुंजियां

उत्तर

13

मैं चार के रूप में getch() कॉल भंडारण किया गया था जब वे पूर्णांक के होना चाहिए गया: यहाँ चार के लिए देखने के लिए कर रहे हैं। स्विच के बाद पूरी तरह से काम करता है। निम्नलिखित

5

मानक (वीटी 100-जैसे) टर्मिनल तीर कुंजी दबाए जाने पर वर्णों का अनुक्रम भेजते हैं। आपको केवल ट्रैक रखना होगा कि इन्हें अनुक्रम में दबाया गया है या नहीं।

Down Arrow 0x1B 0x5B 0x42 
Left Arrow 0x1B 0x5B 0x44 
Right Arrow 0x1B 0x5B 0x43 
Up Arrow 0x1B 0x5B 0x41 
+1

वहाँ कोड आप इन के लिए एक महत्वपूर्ण ctrl संयोजन या अनुक्रम का उपयोग के रूप में प्रवेश कर सकता है बच रहे हैं? –

+0

कोई ज़रूरत नहीं है; आप उन्हें सीधे टाइप कर सकते हैं। 0x1B = esc, 0x5B = [, और 0x41 - 0x44 = ए - डी टाइप करें esc [डी आपके टर्मिनल में, और कर्सर बाईं ओर चला जाता है। –

+12

यह दृष्टिकोण पहली बार शाप पुस्तकालय के साथ काम करने के पूरे उद्देश्य को पूरी तरह से हरा देता है :-) –

11

मैं मैक ओएस एक्स पर एक ही समस्या पाया लेकिन यह जोड़ कर हल किया गया था:

keypad(stdscr, TRUE); 
+2

हालांकि, ओपी ने कहा है कि यह उसके लिए काम नहीं करता है। – augurar

संबंधित मुद्दे