السلام عليكم
انا دورت بالمنتدى عن اضافة parameters لـ main function main
بس ما لقيت
ممكن تفيدوني بشرح على مثال موجود بالمرفقات انا كتبتو عالسي تربو
بس الله يخليكم بسرعة الاربعا الامتحان
و بعد اذنكم لو تشملو كيف او شو اكتب لما ادخل بيئة الدوس
راح اشرح شرح بسيط وإن شاء الله الافاده توصلك
اول شي احنه مثل ماتعلمنا انه الدالة main يبدي منها البرنامج وينتهي منها البرنامج
فهذي دالة رئيسيه اذا كانت void اي بدون وسائط فتمسى دالة رئيسيه main مثل ماتعرف
اما لو مررنا عليها وسائط مثل argc و argv تسمى بوسائط Command-line Agruments
بالاول خلنا نعرف معاني الوسائط
argc وهي تعني agrument count
argv وهي تعني agrument vector
الوسيط الاول هو متغير لسلسلة من السلاسل الحرفية والوسيط الثاني هو سلسلة حرفية
شوف هذا المثال:
#include <stdio.h>
main (int argc)
{
printf("argc = %d", argc);
}وشوف هذا المثال:
#include <stdio.h>
main (int argc)
{
argc += 1;
printf("argc = %d", argc);
}وشوف الفرق بين الاثنين الي نبي نوصله انه الوسيط argc هو متغير لسلسلة حرفية
فتقدر تغيره في البرنامج متى ماشئت
وهذا مثال للوسيط argv:
#include <stdio.h>
#include <stdlib.h>
main (int argc, char *argv[])
{
if (argc!=2)
{
printf(" You forgot to type your name.\n");
exit(1);
}
printf("Hello %s", argv[1]);
return 0;
}إن شاء الله قد فهمت الشرح البسيط والفقير :)
بس في ملاحظة بسيطة انه الوسيط argc يبدي من القيمة 1 يعني لو تسوي
argv[argc] اول شي هذا معناته argv[1]
والسلام خير الختام
شكرا اخي عالشرح
بس لو سمحت ممكن تقولي في بيئة الدوس شو بنكتب تحديدا ؟
يعني احنا اصلا اصلا لشو بنستخدم الكوماند لاين ؟
اول شي البرامج هذي مفتوحة المصدر Source Code
ولازم نعملها كومبايل حتى تصبح برامج تنفيذيه exe
برامج الكومبايل في اللغة العربية نسميها المترجمات
وكثر منها مثل
++Dev-C
Turbo C
PellesC
VC++
وغيرها الكثير والكثير
نقوم بعمل الكومبايل للاكواد
وبعدها نضع البرامج التنفيذيه في القرص C مثلا
ونقوم بفتح نافذة السوداء (الدوس)
ونقوم بكتابه
cd\
بعدين
main.exe
او اي اسم تسمي البرنامج
واسف عالإطالة
يمكن تشغيل برنامجك عن طريق الكوماند لاين, بفتح نافذة الدوس و التصفح إلى أن تصلى إلى المجلد المحتوى على برنامجك ثم كتابة إسم البرنامج و الخواص إذا وجد.
يعنى مثلا عند تنفيذ البرنامج format على بيئة الدوس >
A:\format C: \q
هنا إسم البرنامج A:\format و الخواص هى "C:" و "\q" .
طيب كيف نمرر الخواص هذه إلى برنامجنا ؟, عن طريق ال arguments بتاعة ال main
argv : هو عبارة عن array of strings أول عنصر فيها هو مسار البرنامج نفسه و العتاصر اللى بعد كدة هى الخواص اللى مررتيها للبرنامج بتاعك بترتيب كتابتك ليها طبعا.
argc : هو عبارة عن عدد العناصر الموجودة فىargv
يعنى مثلا فى البرنامج اللى إنتى حطاه المطلوب إنك تدى البرنامج إسم الملف اللى يفتحه. بيشوف ال argv فيها كام عنصر
if (argc != 2){
printf("c:\\F5 filename");
exit();
}إذا كان عدد العناصر فيها لا يساوى 2 (يعنى عندك عنصر واحد بس اللى هو المسار الموجود به البرنامج) فإن البرنامج لا ينفذ و يخرج.
أما إذا كان يساوى 2 فإنه يأخذ العنصر الثانى من argv اللى هو (argv[1]) و يكون هو إسم الفايل و يحاول فتحه و ينفذ البرنامج عادى
if( (fptr = fopen(argv[1], "r")) == NULL)
تم تعديل هذه المشاركة بواسطة Blueteeth في 30 مايو 2006 في 10:11
هذا الموضوع مغلق.