הבדל מפתח – getc vs getchar
פונקציה היא קבוצה של הצהרות לביצוע משימה ספציפית. בתכנות, המשתמש יכול להגדיר את הפונקציות שלו או להשתמש בפונקציות שמספקת שפת התכנות. לשפת C יש מספר פונקציות, כך שהמתכנת יכול להשתמש בהן ישירות בקידוד מבלי ליישם אותן מלכתחילה. יש מעט פונקציות הקשורות לקריאת תווים. שניים מהם הם getc ו-getchar. ההבדל העיקרי בין getc ל-getchar הוא שה-getc משמש לקריאת תו מזרם קלט כמו קובץ או קלט סטנדרטי בעוד ש-getchar הוא לקריאת תו מקלט רגיל.מאמר זה דן בהבדל בין שתי הפונקציות הללו.
מה זה getc?
זו פונקציה המשמשת לקריאת תו מזרם קלט כגון קובץ או מקלדת. הוא מחזיר את הערך השלם המתאים על הצלחה. התחביר של getc הוא, int getc(File stream). עיין בדוגמה למטה. נניח ש-test.txt הוא קובץ טקסט רגיל בספריית הפרויקט. לקובץ הזה יש שני תווים שהם 'a' ו-'b'.
איור 01: קריאת תווים של קובץ באמצעות getc
לפי התוכנית לעיל, קובץ הבדיקה נפתח במצב קריאה. אז התו הראשון נקרא באמצעות פונקציית getc ומאחסן במשתנה c1. פלט ההצהרה printf c1. ואז התו השני נקרא ומאוחסן במשתנה c2. פלט הצהרת printf c2.לכן, הפונקציה getc משמשת לקריאת תו מזרם כגון קובץ.
איור 02: קריאת תווים בקובץ באמצעות getc ו-loop.
ניתן להשתמש בו עם לולאה כדי לקרוא את כל התווים, אחד בכל פעם עד שהוא מגיע לסוף הקובץ (EOF) כמו לעיל. שני התווים בקובץ test.txt מוצגים על המסך.
מה זה getchar()?
getchar() משמש לקריאת תו רק מהקלט הסטנדרטי. זה ממתין עד ללחיצה על מקש אנטר וניתן לראות את הקריאה על המסך. התחביר שלו דומה ל-int getchar(void);
פונקציית getchar אינה דורשת ארגומנט כמו getc. כברירת מחדל, getchar עובד עבור קלט סטנדרטי. לכן, אין צורך להעביר שום ארגומנט לפונקציית getchar. עיין בדוגמה למטה.
איור 03: getchar
כאשר המשתמש נותן את תו הקלט, הוא מוצג על המסך וממתין עד ללחיצה על מקש ה-Enter. לאחר מקש Enter, הפלט מודפס על המסך בגלל פונקציית printf.
ניתן להשיג את אותה פונקציונליות getchar באמצעות פונקציית getc באופן הבא.
איור 04: פונקציונליות getchar באמצעות getc
לפי התוכנית לעיל, הפונקציה getc משמשת לקריאת תו. הוא מאוחסן במשתנה "ch". הפונקציה getc טוענת stdin כדי לציין שהקלט נלקח מהקלט הסטנדרטי שהוא המקלדת.המשתמש יכול לתת תו וללחוץ על מקש אנטר. ואז התו הזה מודפס למסך באמצעות פונקציית printf.
מה הם קווי הדמיון בין getc ל-getchar?
- שתיהן פונקציות שמסופקות על ידי שפת התכנות C.
- שתי הפונקציות מחזירות סוף קובץ (EOF) כשהזרם מסתיים.
מה ההבדל בין getc ל-getchar?
getc vs getchar |
|
getc היא פונקציית C לקריאת תו מזרם קלט כגון זרם קבצים או קלט רגיל. | getchar היא פונקציית C לקריאת תו רק מזרם הקלט הסטנדרטי (stdin) שהוא המקלדת. |
תחביר | |
getc תחביר דומה לתחביר int getc(File stream). | getchar תחביר דומה ל-int getchar(void); |
סיכום – getc vs getchar
שפת התכנות C מספקת פונקציות רבות. מתכנתים יכולים להשתמש בפונקציות הללו מבלי ליישם אותן מלכתחילה. שתיים מפונקציות כאלה הן getc ו-getchar. ההבדל בין getc ל-getchar הוא ש-getc משמש לקריאת תו מזרם קלט כגון קובץ או קלט רגיל ו-getchar הוא לקריאת תו מקלט סטנדרטי. שניהם משתמשים לקריאת דמות, אבל הפונקציונליות שלהם שונה.
הורד את גרסת ה-PDF של getc vs getchar
ניתן להוריד את גרסת ה-PDF של מאמר זה ולהשתמש בה למטרות לא מקוונות לפי הערת ציטוט. אנא הורד כאן גרסת PDF ההבדל בין getc ו-getchar