הבדל בין scanf ל-gets

תוכן עניינים:

הבדל בין scanf ל-gets
הבדל בין scanf ל-gets

וִידֵאוֹ: הבדל בין scanf ל-gets

וִידֵאוֹ: הבדל בין scanf ל-gets
וִידֵאוֹ: Difference Between scanf() and gets() function in C language 2024, נוֹבֶמבֶּר
Anonim

הבדל מפתח - scanf vs gets

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

מה זה scanf?

פונקציית scanf יכולה לקרוא קלט מהמקלדת ולאחסן אותם בהתאם למפרט הפורמט הנתון. הוא קורא את הקלט עד שהוא נתקל ברווח לבן, קו חדש או EOF. התחביר הוא כדלקמן.

scanf(“פורמט מחרוזת”, רשימת כתובת של משתנים);

עיין בדוגמה הבאה כדי להבין את scanf.

ההבדל בין scanf ל-gets
ההבדל בין scanf ל-gets
ההבדל בין scanf ל-gets
ההבדל בין scanf ל-gets

איור 01: scanf עם קלט אחד

לפי התוכנית לעיל, הקלט המתקבל מהמקלדת הוא מספר שלם, כך שמפרט הפורמט הוא %d. אם הוא מקבל ערך תו, מפרט הפורמט הוא %c.אם מקבלים ערך נקודה צפה, מפרט הפורמט הוא %f. יש לאחסן את ערך הקלט שהתקבל במשתנה המספר. לכן, הכתובת של מספר משתנה מועברת לפונקציית scanf. כעת משתנה המספר מכיל את הערך שניתן על ידי המשתמש מהמקלדת. לבסוף, נוכל להדפיס את משתנה המספר כדי לבדוק את הערך.

אפשר גם לקבל יותר מערך אחד בכל פעם.

ההבדל בין scanf ל-gets_Figure 02
ההבדל בין scanf ל-gets_Figure 02
ההבדל בין scanf ל-gets_Figure 02
ההבדל בין scanf ל-gets_Figure 02

איור 02: scanf עם מספר כניסות

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

מה זה מקבל?

הפונקציה gets משתמשת כדי לקבל קלט מהמקלדת עד להיתקלות בשורה חדשה או EOF. הרווח הלבן נחשב כחלק מהקלט. התחביר עבור פונקציית gets הוא כדלקמן.

gets("היכן לאחסן את המחרוזת");

אם יש שגיאה בעת קבלת המחרוזת, הפונקציה gets תחזיר ערך ריק.

עיין בדוגמה הבאה,

ההבדל העיקרי בין scanf ל-gets
ההבדל העיקרי בין scanf ל-gets
ההבדל העיקרי בין scanf ל-gets
ההבדל העיקרי בין scanf ל-gets

איור 03: מקבל

הקלט מתקבל על ידי הפונקציה gets ומאוחסן במשתנה word1. אם המתכנת השתמש ב-scanf במקום ב-gets והזין מחרוזת כגון "hello world", scanf יקרא את המחרוזת כשתי מחרוזות בגלל הרווח הלבן.אבל gets יקראו את זה כמחרוזת אחת "שלום עולם".

מהם הדמיון בין scanf ל-gets?

  • שתיהן פונקציות שמסופקות על ידי שפת התכנות C.
  • שניהם צריכים לכלול את קובץ הכותרת stdio.h כדי להשתמש בפונקציות האלה.
  • ניתן להשתמש בשניהם כדי לקבל קלט מהקלט הסטנדרטי.

מה ההבדל בין scanf ל-gets?

scanf vs gets

scanf היא פונקציית C לקריאת קלט מהקלט הסטנדרטי עד להיתקלות ברווח לבן, שורה חדשה או EOF. gets היא פונקציית C לקריאת קלט מקלט סטנדרטי עד להיתקלות בשורה חדשה או EOF. הוא מחשיב רווח לבן כחלק מהקלט.
תחביר
הפונקציה scanf לוקחת את מחרוזת הפורמט ואת רשימת הכתובות של משתנים. לְמָשָׁל scanf(“%d”, &number); הפונקציה gets לוקחת את שם המשתנה כדי לאחסן את הערך שהתקבל. לְמָשָׁל. gets(name);
גמישות
scanf יכול לקרוא מספר ערכים של סוגי נתונים שונים. gets() יקבל רק נתוני מחרוזת תווים.

סיכום – scanf vs gets

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

הורד את גרסת ה-PDF של scanf vs gets

ניתן להוריד את גרסת ה-PDF של מאמר זה ולהשתמש בה למטרות לא מקוונות לפי הערת ציטוט. אנא הורד כאן גרסת PDF ההבדל בין scanf ל-gets

מוּמלָץ: