Menu
Coddy logo textTech

קריאת קלט באמצעות readline()

חלק מהיחידה יסודות במסלול ה-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() כדי להדפיס: ברוכים הבאים, [name] מ-[city]!
# אל תשכחו את תו השורה החדשה \n בסוף
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר R אונליין