إدخال وحدة التحكم غير المحظورة في لغة C
في لغة C الحديثة، يسمح إدخال وحدة التحكم غير المحظورة بالتعامل السلس مع أوامر المستخدم أثناء البرنامج يستمر في تشغيل وإخراج المعلومات. غالبًا ما تكون هذه الإمكانية حاسمة في التطبيقات التفاعلية والألعاب.حل C 11:إحدى الطرق الفعالة لتنفيذ إدخال وحدة التحكم غير المحظورة هي من خلال استخدام وحدة تحكم منفصلة. خيط. يسمح هذا الأسلوب للبرنامج الرئيسي بمواصلة التنفيذ بينما يقوم مؤشر ترابط الخلفية بمراقبة وحدة التحكم للإدخال. يوضح نموذج التعليمات البرمجية التالي هذا الأسلوب باستخدام C 11:
#include#include
#include
#include
#include
static std::string getAnswer()
{
std::string answer;
std::cin >> answer;
return answer;
}
int main()
{
std::chrono::seconds timeout(5);
std::cout future = std::async(getAnswer);
if (future.wait_for(timeout) == std::future_status::ready)
answer = future.get();
std::cout شرح:في هذا المثال، تكون وظيفة getAnswer مسؤولة عن استرداد مدخلات المستخدم. تقوم الدالة std::async بتشغيل مؤشر ترابط منفصل ينفذ getAnswer ويعيد كائن std::future الذي يمكن استخدامه لاسترداد النتيجة.
يقوم البرنامج الرئيسي بتعيين مهلة مدتها 5 ثوانٍ لانتظار إدخال المستخدم . إذا قام المستخدم بإدخال الإدخال خلال هذا الوقت، يقوم البرنامج بتعيين متغير الإجابة على الإدخال. بخلاف ذلك، يتم تعيينه افتراضيًا على "ربما".
يسمح أسلوب الإدخال غير المحظور هذا للبرنامج بمواصلة حساباته ومخرجاته المستمرة مع الاستمرار في الاستجابة لإدخال المستخدم بكفاءة. إنها تقنية قوية لبناء تطبيقات C التفاعلية.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3