Download presentation
Presentation is loading. Please wait.
1
הרצאה 08 פרמטרים ל- main קרן כליף
2
ביחידה זו נלמד: דרכים שונות להרצת תוכנית העברת פרמטרים לתוכנית
העברת פרמטרים ל- main דרכים להעברת פרמטרים ל- main © Keren Kalif
3
הרצת תוכניות דרכים להרצת תוכנית:
דרך סביבת העבודה באמצעות double-click על קובץ ה- exe שנוצר בעקבות תהליך הקומפילציה באמצעות חלון דוס תוך ציון המסלול המלא של קובץ ה- exe באמצעות תפריט start run תוך ציון המסלול המלא של קובץ ה- exe כאשר מריצים דרך 2 האפשרויות האחרונות ניתן להעביר פרמטרים לתוכנית דוגמא: אם נכתוב notepad תיפתח לנו האפליקציה מוכנה עבור כתיבת קובץ חדש, ואם נכתוב notepad ולידו שם של קובץ, יפתח הקובץ © Keren Kalif
4
מוטיבציה כל התוכניות שכתבנו עד היום קיבלו את הנתונים מקלט מהמשתמש, או מקובץ ע"י redirection בהגדרות הפרוייקט יתכן ונרצה להפעיל את התוכנית שלנו עם ערכי התחלה שונים כל פעם, שלא יוכנסו ע"י המשתמש בזמן ריצת התוכנית, אלא לפני יתכן ויש איזשהי תוכנית (או מערכת ההפעלה) שרוצה להפעיל את התוכנית שלנו, ולהעביר אליה פרמטרים נקודת הכניסה לתוכנית שלנו היא הפונקציה main, שעד כה לא קיבלה פרמטרים ניתן להגדיר שה- main יקבל פרמטרים בפורמט קבוע © Keren Kalif
5
void main(int argc, char* argv[])
argv הינו מערך של מחרוזות המכיל את הפרמטרים שה- main מקבל הפרמטרים יכולים להיות מכל טיפוס, אך מועברים כמחרוזת, ונצטרך לבצע המרה argc הינו פרמטר המכיל את כמות הפרמטרים שהתוכנית קיבלה ערכו תמיד לפחות 1 מאחר ושם התוכנית גם נחשב כפרמטר מערכת ההפעלה היא זו ששמה את הערך ב- argc ואחראית לשחרור המחרוזות שבמערך argv © Keren Kalif
6
דוגמאות להרצת התוכנית בשם calc המקבלת מספר, פעולה חשבונית ומספר
דרך חלון דוס: דרך שורת ההרצה: מערך הפרמטרים הינו באורך 1, והתוכנית הוציאה הודעת שגיאה מערך הפרמטרים הינו 4 מחרוזות, שהראשונה היא שם התוכנית © Keren Kalif
7
דוגמאת מחשבון void main(int argc, char* argv[]) {
int num1, num2, res, numOfNumbers=0, opOk=1; char op; // getting the values … switch (op) case '+': res = num1 + num2; break; case '-': res = num1 - num2; break; case '*': res = num1 * num2; break; case '/': if (num2 != 0) res = num1 / num2; else opOk = 0; break; } if (opOk) printf("%d %c %d = %d\n", num1, op, num2, res); printf("Can not divide by 0!\n"); דוגמאת מחשבון © Keren Kalif
8
דוגמאת מחשבון void main(int argc, char* argv[]) {
int num1, num2, res, numOfNumbers=0, opOk=1; char op; // getting the values if (argc == 4) numOfNumbers += sscanf(argv[1], "%d", &num1); numOfNumbers += sscanf(argv[3], "%d", &num2); op = argv[2][0]; if (op != '+' && op != '-' && op != '/' && op != '*') opOk = 0; } if (argc != 4 || numOfNumbers != 2 || !opOk) printf("USAGE: calc.exe <num1> <op> <num2>\n"); return; // the rest of the program… דוגמאת מחשבון © Keren Kalif
9
העברת פרמטרים ל- main דרך סביבת העבודה
בתפריט: project properties configuration properties debugging command arguments © Keren Kalif
10
ביחידה זו למדנו: דרכים שונות להרצת תוכנית העברת פרמטרים לתוכנית
העברת פרמטרים ל- main דרכים להעברת פרמטרים ל- main © Keren Kalif
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.