המתן לקלט משתמש: שפה C

Wait User Input C Language



בשפת התכנות C יש כמה פונקציות קלט. באמצעות פונקציות אלה, אנו יכולים לחכות לקלט המשתמש. במדריך זה אנו נדון בפירוט בפונקציות הקלט.

מחרוזת פורמט

מחרוזת פורמט היא הפורמט של הנתונים שהוזנו. פורמט זה מתחיל בסימן % ואחריו מציין פורמט. מציין פורמט הוא תו ספציפי המשמש עבור איזה סוג נתונים נקראים.







arg1, arg2, arg3… הם כתובות המשתנים בהם הנתונים יאוחסנו.



פונקציית scanf ()

תחביר: int scanf (מחרוזת פורמט, arg1, arg2, arg3 ...)



כמה מהמפרטים הנפוצים הם כדלקמן:





  • ד - משמש לערכים שלמים.
  • ו - משמש למספר צף.
  • ג - משמש לערך תו יחיד.
  • ש - משמש למיתרים.

שימוש בסינגל scanf () פונקציה, קלט אחד או מספר ניתן לקחת מהמשתמש.

ה scanf () פונקציה לוקחת קלט מהקלט הסטנדרטי (מקלדת) ומאחסנת את הערך במשתנה. הפונקציה ממתינה לקלט המשתמש עד שהמשתמש לוחץ על מקש enter. הערך שהוזן נשמר במאגר. כאשר לוחצים על מקש enter, scanf () הפונקציה מתחילה לקרוא.



דוגמה 1: קלט שלם

// דוגמא1.ג
#לִכלוֹל

intרָאשִׁי(){

intאני;
printf ('הזן ערך מספר שלם ראשון:');
scanf ('%d', &אני);
printf ('הזנת: %d n',אני);

printf ('הזן ערך מספר שלם שני:');
scanf ('%d', &אני);
printf ('הזנת: %d n',אני);

לַחֲזוֹר 0;
}

בדוגמא 1 ג, ראינו שכאשר הזנו ערכים שלמים ולחץ על מקש enter. ה scanf () פונקציה לוקחת את הערך ומאחסנת אותו במשתנה. אם נזין את הערכים המופרדים ברווח, הפונקציה חוזרת כאשר נתקלים ברווח אך הערכים לאחר הרווח נשארים במאגר הקלט. בגלל זה השני scanf () הפונקציה לא תחכה לקלט המשתמש, במקום זאת היא לוקחת את הקלט מהמאגר.

דוגמה 2: קלט תו יחיד

// דוגמה 2. ג
#לִכלוֹל

intרָאשִׁי(){

לְהַשְׁחִירג;
printf ('הזן תו:');
scanf ('% c', &ג);
printf ('הזנת: %ג n',ג);

לַחֲזוֹר 0;
}

בדוגמה 2.c, ראינו זאת כאשר אנו משתמשים % ג מציין, ה scanf () פונקציה לוקחת רק תו אחד גם אם הכנסנו יותר מתו אחד.

דוגמה 3: קלט תו יחיד (פעמים רבות)

// דוגמה 3. ג
#לִכלוֹל

intרָאשִׁי(){

לְהַשְׁחִירג;
printf ('הזן תו ראשון:');
scanf ('% c', &ג);
printf ('הזנת: %ג n',ג);

printf ('הזן תו שני:');
scanf ('% c', &ג);
printf ('הזנת: %ג n',ג);

לַחֲזוֹר 0;
}

דוגמה 4 :

// דוגמא 4. ג
#לִכלוֹל

intרָאשִׁי(){

לְהַשְׁחִירג;
printf ('הזן תו ראשון:');
scanf ('% c', &ג);
printf ('הזנת: %ג n',ג);

printf ('הזן תו שני:');
scanf ('% c', &ג);
printf ('הזנת: %ג n',ג);

לַחֲזוֹר 0;
}

דוגמה 5: קלט מחרוזת

// דוגמא 5.c
#לִכלוֹל

intרָאשִׁי(){

לְהַשְׁחִירשֵׁם[חֲמֵשׁ עֶשׂרֵה];
printf ('הזן את שמך: ');
scanf ('%s',שֵׁם);
printf ('הזנת: %s n',שֵׁם);

לַחֲזוֹר 0;
}

getc () פונקציה

תחביר: int getc (FILE *stream)

getc () הפונקציה משמשת לקריאת תו מהמצביע (הזרם) FILE. כדי לקרוא מהמקלדת, עלינו להשתמש stdin . פונקציה זו מחזירה ערך שלם של תו קריאה.

דוגמה 6:

// דוגמא6.ג
#לִכלוֹל

intרָאשִׁי(){

לְהַשְׁחִירג;
printf ('הזן תו ראשון:');
בזמן((ג= getc (stdin))==' n');
printf ('הזנת: %ג n',ג);

בזמן( getc (stdin)! =' n');

printf ('הזן תו שני:');
בזמן((ג= getc (stdin))==' n');
printf ('הזנת: %ג n',ג);

לַחֲזוֹר 0;
}

getchar () פונקציה

תחביר: int getchar (void)

getchar () הפונקציה זהה ל getc () . ההבדל היחיד הוא זה getc () הפונקציה יכולה לקרוא מכל זרם קלט, ואילו getchar () הפונקציה נקראת מתוך קלט רגיל בלבד.

דוגמה 7:

// דוגמא 7. ג
#לִכלוֹל

intרָאשִׁי(){

לְהַשְׁחִירג;
printf ('הזן תו ראשון:');
בזמן((ג= getchar ())==' n');
printf ('הזנת: %ג n',ג);

בזמן( getchar ()! =' n');

printf ('הזן תו שני:');
בזמן((ג= getchar ())==' n');
printf ('הזנת: %ג n',ג);

לַחֲזוֹר 0;
}

סיכום

במאמר זה, ראינו כיצד משתמשים בפונקציות קלט בשפת C. כל הפונקציות הללו נלקחות קלט ממאגר הקלט וכאשר אנו משתמשים בפונקציות אלה מספר פעמים, עלינו לנקות את המאגר. אחרת, הפונקציות לא יחכו לקלט המשתמש וייקחו את הקלט מהמאגר.