פונקציית getch ב-C++

Pwnqzyyt Getch B C



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

מה זה Getch() ב-C++?

ב-C++, הספרייה בשם 'cstdio' משמשת בעיקר עבור הפונקציה getch() . Getch() מוגדר גם ב-'conio. קובץ כותרת h' שהוא ספציפי למהדר והוא פונקציה לא סטנדרטית מכיוון שהוא לא לגמרי החלק של תקן ספריית C++. הקיצור של getch הוא 'קבל תו' והוא משמש כדי להישאר על מסך הפלט לזמן מה עד שהמשתמש יעביר את הקלט.

הבה נרחיב על מושג זה כראוי בעזרת דוגמאות. כאן, נלמד על התחביר, השימוש וההתנהגות של שיטת getch() ב-C++ בעזרת תרחישים מתאימים.







תרחיש 1: כיצד להשתמש ב-Getch() ביישום מונחי תפריטים

בואו נדבר על האפליקציה הקטנה מונעת התפריט שעבורה נפרט אפשרויות שונות. כל אפשרות מיועדת למטרות שונות כמו תפריט מסעדה. קטע הקוד של דוגמה זו מצורף בקטע הבא:



#include
#include
#include
באמצעות מרחב שמות סטד ;
int רָאשִׁי ( ) {
לְהַשְׁחִיר בְּחִירָה ;
סטד :: cout << 'תפריט המסעדה: \n ' ;
סטד :: cout << '1. אפשרות 1: פיצה \n ' ;
סטד :: cout << '2. אפשרות 2: בורגר \n ' ;
סטד :: cout << '3. אפשרות 3: עוגה \n ' ;
סטד :: cout << 'הזן את הבחירה שלך:' ;
בְּחִירָה = getch ( ) ; // user give input  ו-getch() קורא את הקלט מבלי ללחוץ על לחצן Enter
החלף ( בְּחִירָה ) {
מקרה '1' :
סטד :: cout << ' \n אתה בוחר 'פיצה' \n ' ;
לשבור ;
מקרה '2' :
סטד :: cout << ' \n אתה בוחר 'בורגר' \n ' ;
לשבור ;
מקרה '3' :
סטד :: cout << ' \n אתה בוחר 'עוגה' \n ' ;
לשבור ;
בְּרִירַת מֶחדָל :
סטד :: cout << '\אין ברירה - אין סדר \n ' ;
}
לַחֲזוֹר 0 ;
}

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



אנו מעבירים את getch() לבחירת המשתנה מכיוון שקלט המשתמש מאוחסן במשתנה זה ומציגים את הפלט באופן אוטומטי לפי האפשרות שנבחרה. כדי לבחור אפשרות מהתפריט, אנו משתמשים בפונקציה switch() ומעבירים 'בחירה' בפונקציה זו. בתוך שיטת 'הבורר', אנו עורכים את התיקים כנגד כל אפשרות בנפרד. בשיטת 'switch' ב-C++, תמיד נעשה שימוש במשפט break בסוף כל מקרה שמציין את סוף ההצהרה. כאשר אנו קומפילים ומבצעים אותו, הפלט מוצג במסך המסוף המצורף בקטע הבא:





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



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

תרחיש 2: קבל את הסיסמה הנסתרת מהמשתמש באמצעות Getch()

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

#include
#include
#include
#include
#include
int רָאשִׁי ( )
{
לְהַשְׁחִיר pasw [ 8 ] ;
int M ;
סטד :: cout << 'הזן סיסמה בת 8 ספרות:' ;
ל ( M = 0 ; M <= 7 ; M ++ ) {
pasw [ M ] = getch ( ) ;
סטד :: cout << '*' ;
}
pasw [ M ] = ' \0 ' ;
סטד :: cout << ' \n ' ;
סטד :: cout << 'בטל הסתרת הסיסמה שהוזנה:' ;
ל ( M = 0 ; pasw [ M ] ! = ' \0 ' ; M ++ )
סטד :: cout << ( '%c' , pasw [ M ] ) ;
getch ( ) ;
לַחֲזוֹר 0 ;
}

כפי שניתן לראות בקוד הנתון, הוסף את הספריות הסטנדרטיות החיוניות לשימוש בפונקציית getch() וכדי להציג את הפלט על המסך. התפקיד העיקרי של תוכנית זו הוא להכיל את השלבים השונים דרכם אנו מכניסים סיסמה מהמשתמש ומציגים את הסיסמה על המסך. אנחנו צריכים את משתנה המערך שסוג הנתונים שלו הוא 'Char' בגודל של 8 אלמנטים. פרט לכך, אנחנו צריכים גם משתנה שמאחסן את ערכי האיטרציה.

כאן, אנו משתמשים ב-'For Loop' שקורא כל ספירת קלט של המשתמש אם גודל המערך הוא '8'. לאחר מכן, המשתמש לוחץ רק על סיסמת המפתח בחלון מסוף הקלט בעזרת הלולאה. בתוך לולאת 'for' זו, אנו מעבירים את הפונקציה getch() למערך passw[]. פונקציה זו מתקיימת על המסך עד שהמשתמש מזין את 8 התווים של הסיסמה. בכל ספירת לולאה, הדפס '*' על כל ספירת קלט משתמש, והלולאה נסגרת כאן.

לאחר מכן, אנו משתמשים שוב בלולאת 'for' שמציגה את הסיסמה הנסתרת עצמה רק על ידי לקיחת הערכים מ-passw[]. Getch מחזיק את המסך באופן אוטומטי עד שקלט המשתמש מאוחסן בצורה מושלמת במערך ומציג את הסיסמה על המסך.

לחץ על האפשרות 'הידור והפעל' כדי להפעיל את התוכנית ולהציג את הפלט על המסך.

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

מסך הפלט קופא רק בגלל הפונקציה getch() . הפונקציה getch() פשוט מדפיסה את נתוני הקלט על המסך כפי שמוצג בצילום המסך שצורף קודם לכן.

סיכום

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