وظيفة getch في C++

Wzyft Getch Fy C



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

ما هو Getch() في C++؟

في لغة C++، تُستخدم المكتبة المسماة ملف الرأس 'cstdio' في الغالب لوظيفة getch(). يتم تعريف Getch() أيضًا في ملف 'conio. h' وهو ملف رأس خاص بالمترجم وهو وظيفة غير قياسية لأنه ليس جزءًا من معيار مكتبة C++ بالكامل. اختصار getch هو 'الحصول على الحرف' ويتم استخدامه للبقاء على شاشة الإخراج لفترة من الوقت حتى يقوم المستخدم بتمرير الإدخال.

دعونا نوضح هذا المفهوم بشكل صحيح بمساعدة الأمثلة. سنتعرف هنا على بناء جملة واستخدام وسلوك طريقة getch() في لغة C++ بمساعدة السيناريوهات المناسبة.







السيناريو 1: كيفية استخدام Getch() في تطبيق يحركه القائمة

دعونا نناقش التطبيق الصغير القائم على القائمة والذي سندرج له خيارات مختلفة. تم تصميم كل خيار لأغراض مختلفة مثل قائمة المطعم. مقتطف الكود الخاص بهذا المثال مرفق فيما يلي:



#تشمل
#تشمل
#تشمل
استخدام مساحة الاسم الأمراض المنقولة جنسيا ;
كثافة العمليات رئيسي ( ) {
شار خيار ;
الأمراض المنقولة جنسيا :: cout << 'قائمة المطاعم: ' ;
الأمراض المنقولة جنسيا :: cout << '1. الخيار 1: البيتزا ' ;
الأمراض المنقولة جنسيا :: cout << '2. الخيار 2: برجر ' ;
الأمراض المنقولة جنسيا :: cout << '3. الخيار 3: كعكة ' ;
الأمراض المنقولة جنسيا :: cout << 'أدخل اختيارك: ' ;
خيار = getch ( ) ; // يقدم المستخدم إدخالاً ويقرأ getch() الإدخال دون الضغط على زر الإدخال
يُحوّل ( خيار ) {
قضية '1' :
الأمراض المنقولة جنسيا :: cout << ' اخترت 'بيتزا' ' ;
استراحة ;
قضية '2' :
الأمراض المنقولة جنسيا :: cout << ' اخترت 'برغر' ' ;
استراحة ;
قضية '3' :
الأمراض المنقولة جنسيا :: cout << ' اخترت 'كعكة' ' ;
استراحة ;
تقصير :
الأمراض المنقولة جنسيا :: cout << '\لا خيار-لا يوجد أمر ' ;
}
يعود 0 ;
}

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



نقوم بتمرير getch() إلى المتغير الاختيار لأن مدخلات المستخدم مخزنة في هذا المتغير ونعرض المخرجات تلقائيًا وفقًا للخيار المحدد. لتحديد خيار من القائمة، نستخدم الدالة Switch() ونمرر 'الاختيار' في هذه الدالة. داخل طريقة 'التبديل'، نقوم بعمل الحالات ضد كل خيار على حدة. في طريقة 'switch' في لغة C++، يتم دائمًا استخدام عبارة Break في نهاية كل حالة مما يشير إلى نهاية العبارة. عندما نقوم بتجميعها وتنفيذها، تظهر المخرجات على شاشة وحدة التحكم المرفقة فيما يلي:





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



في لقطة الشاشة المرفقة سابقًا، يقوم المستخدم بإدخال الاختيار '2' وتظهر النتيجة على الشاشة 'لقد حددت 'برجر''. يتم مسح عمل getch() في هذا المثال عندما يقوم المستخدم بإدخال الإدخال ويتم عرض الإخراج المتوقع على شاشة وحدة التحكم بدلاً من الإدخال المقدم من المستخدم والذي يظهر على وحدة التحكم.

السيناريو 2: قبول كلمة المرور المخفية من المستخدم باستخدام Getch()

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

#تشمل
#تشمل
#تشمل
#تشمل
#تشمل
كثافة العمليات رئيسي ( )
{
شار pasw [ 8 ] ;
كثافة العمليات م ;
الأمراض المنقولة جنسيا :: cout << 'أدخل كلمة المرور المكونة من 8 أرقام:' ;
ل ( م = 0 ; م <= 7 ; م ++ ) {
pasw [ م ] = getch ( ) ;
الأمراض المنقولة جنسيا :: cout << '*' ;
}
pasw [ م ] = ' \0 ' ;
الأمراض المنقولة جنسيا :: cout << ' ' ;
الأمراض المنقولة جنسيا :: cout << ''إظهار كلمة المرور المدخلة:'' ;
ل ( م = 0 ; pasw [ م ] ! = ' \0 ' ; م ++ )
الأمراض المنقولة جنسيا :: cout << ( '%ج' ، باس [ م ] ) ;
getch ( ) ;
يعود 0 ;
}

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

هنا، نستخدم 'For Loop' الذي يقرأ كل عدد مدخلات المستخدم إذا كان حجم المصفوفة '8'. وبعد ذلك، يضغط المستخدم فقط على كلمة المرور الرئيسية في نافذة وحدة التحكم في الإدخال بمساعدة الحلقة. داخل حلقة 'for' هذه، نقوم بتمرير الدالة getch() إلى المصفوفة passw[] . تستمر هذه الوظيفة على الشاشة حتى يقوم المستخدم بإدخال الأحرف الثمانية لكلمة المرور. في كل عدد حلقات، اطبع '*' على كل عدد مدخلات المستخدم، وسيتم إغلاق الحلقة هنا.

بعد ذلك، نستخدم حلقة 'for' مرة أخرى والتي تظهر كلمة المرور المخفية نفسها بمجرد أخذ القيم من passw[]. يمسك Getch الشاشة تلقائيًا حتى يتم تخزين إدخالات المستخدم بشكل مثالي في المصفوفة ويعرض كلمة المرور على الشاشة.

انقر على خيار 'Compile and Run' لتنفيذ البرنامج وإظهار المخرجات على الشاشة.

أدخل كلمة المرور المكونة من 8 أرقام على الشاشة. عند الانتهاء من إدخال 8 أرقام، فإنه يعرض تلقائيًا كلمة المرور المكتوبة على نافذة وحدة التحكم. اضغط على مفاتيح لوحة المفاتيح 8 مرات واكتب كلمة المرور.

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

خاتمة

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