Menu
Coddy logo textTech

קריאת קלט מהמשתמש

חלק מהיחידה יסודות במסלול ה-Rust של Coddy. שיעור 30 מתוך 75.

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

ב-Rust, קבלת קלט ממשתמש מתבצעת באמצעות הספרייה std::io. הספרייה הזו מספקת שיטות לקריאת סוגים שונים של קלט, כגון מספרים שלמים, מספרים בנקודה צפה ומחרוזות.

כדי להשתמש בספרייה std::io, תחילה צריך לייבא אותה:

use std::io;

כדי לקרוא קלט ממשתמש, אנחנו צריכים שתי שורות קוד:

let mut my_var = String::new();
// יוצר מחרוזת ריקה לשמירת הקלט

io::stdin().read_line(&mut my_var).unwrap();
 // קורא את הקלט

פעולה זו תשמור את ערך הקלט במשתנה my_var מסוג מחרוזת.

אם רוצים לקבל מספר, צריך שלב נוסף כדי להמיר את קלט הטקסט למספר:

let age: i32 = input.trim().parse().unwrap();

יש צורך ב־.trim() משום שכאשר משתמשים לוחצים על Enter, נוסף תו של שורה חדשה לקלט שלהם. לדוגמה, אם מישהו מקליד "25" ולוחץ על Enter, הקלט בפועל הוא "25\n". הפונקציה .trim() מסירה את תווי הרווח הלבן הנוספים האלה (רווחים, שורות חדשות וכו׳) מתחילת הקלט ומסופו.

אל תדאגו יותר מדי לגבי unwrap() לעת עתה — נלמד עליו בהמשך. רק דעו שהוא עוזר לנו לטפל בשגיאות אפשריות בדרך פשוטה (אם כי לא אידיאלית).

challenge icon

אתגר

מתחילים

כתוב תוכנית שמקבלת קלט מהמשתמש (את שמו), ואז מציגה Hello, ואחריו את השם שהמשתמש הזין וסימן קריאה.

לדוגמה, אם המשתמש מזין Bob, הפלט הצפוי הוא Hello, Bob!.

יהיה עליך:

  1. ליצור אובייקט String כדי לקרוא קלט.
  2. לבקש מהמשתמש להזין את שמו: "Enter your name:"
  3. לקרוא את שם המשתמש באמצעות המתודה המתאימה של std::io.
  4. להציג Hello, ואחריו את השם שנשמר וסימן קריאה ! בסוף.

נסו בעצמכם

use std::io;

fn main() {
    // צרו אובייקט String
    let mut name = String::new();
    
    // בקשו מהמשתמש להזין את שמו (השתמשו ב-println)
    
    
    // קראו את שם המשתמש
    
    
    // הדפיסו את הודעת הברכה
    
}
quiz iconבחנו את עצמכם

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

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

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