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() ينتظر سطر إدخال منفصل من المستخدم.

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

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

هنا، تقوم paste0() ببناء السلسلة النصية Welcome to Paris! دون مسافات غير مرغوب فيها قبل !، ثم تقوم cat() بطباعتها.

challenge icon

التحدي

سهل

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

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

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

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

Welcome, [name] from [city]!

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

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

Welcome, Emma from Paris!

ورقة مرجعية

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

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

تنتظر الدالة readline() المستخدم لكتابة شيء ما والضغط على Enter. يتم تخزين المدخلات كسلسلة نصية.

لقراءة مدخلات متعددة، استخدم readline() عدة مرات:

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

ملاحظة: تعيد readline() دائماً سلسلة نصية، حتى لو قام المستخدم بكتابة رقم.

استخدم cat() لطباعة القيم مفصولة بمسافات. استخدم paste0() لربط القيم معاً بدون مسافات بينها:

name <- readline()
cat(paste0("Hello, ", name, "!"))

في هذا المثال، تقوم paste0() بدمج "Hello, "، والقيمة المخزنة في name، و "!" في سلسلة نصية واحدة بدون مسافات إضافية.

جرّب بنفسك

# قراءة المدخلات
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