سؤال

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

في الوقت الحالي، يؤدي الضغط على أي من مفاتيح الأسهم إلى إنتاج إخراج غريب وأريد منع أي شيء من مكتوبه إلى الإخراج القياسي (قراءتها وبالتالي من الإدخال القياسي في مكالمة نظام القراءة ().

هل هذا ممكن بسهولة تحقيقه أو ليس بهذه السهولة؟

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

المحلول

من أجل تفسير مفاتيح الأسهم بالطريقة التي ستحبيها بشكل مثالي (أي للتحرك ذهابا وإيابا وتحرير الإدخال)، تحتاج عموما إلى استخدام مكتبة. لينكس، المعيار هو جنو readline.. وبعد نأمل أن يقول شخص آخر ما ستستخدمه عادة لتطبيق Windows CLI.

نصائح أخرى

الجواب يعتمد في النهاية على المكان الذي تأتي فيه المفاتيح. ركضت هذا البرنامج تحت Cygwin:

int main(void)
{
    int c=0;

    while( c != 'X' ) {
        c = getchar();
        printf("\nc=%d", c);
    }
}

في كل مرة يأتي مفتاح المؤشر، أرى الهروب (27)، قوس، بالإضافة إلى شخصية أخرى. لذلك، إذا حصلت على نتائج من هذا القبيل، يمكنك تخطي 3 مفاتيح في كل مرة ترى فيها 27. يمكنك أيضا أن تنظر إليهم واستخدامها!

كما ذكر، YMMV، خاصة بالنسبة لنظام التشغيل، والوظيفة الفعلية الفعلي التي تسمونها.

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