Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

قراءة المدخلات باستخدام readline()

جزء من قسم Fundamentals في رحلة R على Coddy — الدرس 29 من 78.

حتى الآن، تعلمت كيفية عرض المخرجات. الآن حان الوقت لجعل برامجك تفاعلية من خلال قراءة المدخلات من المستخدم. تتيح لك الدالة readline() التقاط ما يكتبه المستخدم.

name <- readline()
cat("Hello,", name, "\n")

عند تشغيل هذا الكود، ينتظر R من المستخدم كتابة شيء ما والضغط على Enter. يتم تخزين كل ما يكتبونه في المتغير name. إذا كتب المستخدم "Alice"، فسيكون الناتج: Hello, Alice

شيء واحد مهم يجب معرفته: readline() تعيد دائماً سلسلة نصية، حتى لو قام المستخدم بكتابة رقم. إذا أدخل شخص ما "25"، يتم تخزينها كنص "25"، وليس الرقم 25. ستتعلم كيفية التحويل بين الأنواع في الدرس القادم.

يمكنك قراءة مدخلات متعددة باستخدام readline() عدة مرات:

first <- readline()
second <- readline()
cat("First:", first, "\n")
cat("Second:", second, "\n")

كل استدعاء لـ readline() ينتظر سطر إدخال منفصل من المستخدم.

عند دمج النصوص مع المتغيرات باستخدام cat()، يتم وضع مسافة بين كل عنصر مفصول بفاصلة. في بعض الأحيان تحتاج إلى دمج النصوص بدون أي مسافة — على سبيل المثال، لإلحاق علامات الترقيم مباشرة بكلمة ما. هنا تبرز فائدة paste0(). فهي تقوم بدمج السلاسل النصية مع عدم وجود فاصل بينها:

city <- readline()
cat("Welcome to", paste0(city, "!"), "\n")

هنا، paste0(city, "!") يدمج قيمة city و "!" معاً بدون مسافة، لذا إذا قام المستخدم بكتابة "Paris"، يكون المخرج: Welcome to Paris!

challenge icon

التحدي

سهل

اقرأ سطرين من المدخلات واعرض رسالة ترحيب مخصصة.

ستتلقى مدخلين:

  1. الاسم الأول
  2. اسم المدينة

اقرأ كلا المدخلين باستخدام readline() واعرض رسالة بالتنسيق التالي:

Welcome, [name] from [city]!

استخدم cat() لإنتاج المخرجات. تأكد من تضمين علامة التعجب في النهاية وحرف سطر جديد \n.

على سبيل المثال، إذا كانت المدخلات هي Emma و Paris، يجب أن تكون المخرجات:

Welcome, Emma from Paris!

جرّب بنفسك

# قراءة المدخلات
con <- file("stdin", "r")
name <- suppressWarnings(readLines(con, n = 1))
city <- suppressWarnings(readLines(con, n = 1))

# TODO: اكتب كودك أدناه لعرض رسالة الترحيب
# استخدم cat() لإخراج: Welcome, [name] from [city]!
# لا تنسَ حرف السطر الجديد \n في النهاية
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals