سؤال

لقد قمت ببعض القراءة ، وأرى أنه يمكنني استخدام GetCh () للحصول على ضغط مفتاح. ما رأيته هو أن هذا يعتبر ممارسة سيئة ، لكنني رأيت آراء متضاربة. أنا أكتب طلب وحدة تحكم لفصلي ، وأود أن أتمكن من نقل علامة (*) حول الشاشة بناءً على مفاتيح الأسهم التي يتم الضغط عليها. هل getch () الطريقة الصحيحة للقيام بذلك ، أو هل هناك طريقة أفضل لالتقاطه. أريدهم أن يكونوا قادرين على دفع السهم ، ولا يحتاجون إلى دفع إدخال أو أي شيء. لا أحتاج إلى الرمز على وجه التحديد ، أريد فقط أن أعرف ما إذا كان ينبغي علي تجنب getch () ، وإذا كان الأمر كذلك ، فما هي الوظائف الموجودة لهذا النوع من الأفكار.

هل كانت مفيدة؟

المحلول

getch() ليست وظيفة قياسية في C أو C ++. تم العثور عليها في بعض المترجمين عفا عليها الزمن ، مثل توربو ج ويتم تعريفه أيضًا في بعض المكتبات الشائعة الاستخدام مثل لعنات, ، ولكن على أي حال ، إنها وظيفة C ، وليس C ++. بالنسبة لـ C ++ ، من المحتمل أن تلتزم فقط بـ C ++ I/O القياسي. إذا لم تتمكن من القيام بذلك لسبب ما ، فانتقل إلى الخيار الأكثر محمولًا ، مثل اللعنات.

نصائح أخرى

تريد القراءة من المحطة في الوضع غير الكنسي. استخدم TCSetAttr () لإيقاف علامة ICANON.

استخدم getch () إذا كان يعمل. لما لا؟

على Windows ، يمكنك استخدام pdcurses: http://pdcurses.sourceforge.net/, ، هذا متوافق مع ncurses.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top