الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعدة في argu , argv

مغلق
بدأه فدا في 29 مايو 2006 · 4 رد · 2,257 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

انا دورت بالمنتدى عن اضافة parameters لـ main function main

بس ما لقيت

ممكن تفيدوني بشرح على مثال موجود بالمرفقات انا كتبتو عالسي تربو

بس الله يخليكم بسرعة الاربعا الامتحان

و بعد اذنكم لو تشملو كيف او شو اكتب لما ادخل بيئة الدوس

argc.txt

#2

راح اشرح شرح بسيط وإن شاء الله الافاده توصلك

اول شي احنه مثل ماتعلمنا انه الدالة 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]

والسلام خير الختام

#3

شكرا اخي عالشرح

بس لو سمحت ممكن تقولي في بيئة الدوس شو بنكتب تحديدا ؟

يعني احنا اصلا اصلا لشو بنستخدم الكوماند لاين ؟

#4

اول شي البرامج هذي مفتوحة المصدر Source Code

ولازم نعملها كومبايل حتى تصبح برامج تنفيذيه exe

برامج الكومبايل في اللغة العربية نسميها المترجمات

وكثر منها مثل

++Dev-C

Turbo C

PellesC

VC++

وغيرها الكثير والكثير

نقوم بعمل الكومبايل للاكواد

وبعدها نضع البرامج التنفيذيه في القرص C مثلا

ونقوم بفتح نافذة السوداء (الدوس)

ونقوم بكتابه

cd\

بعدين

main.exe

او اي اسم تسمي البرنامج

واسف عالإطالة

#5

يمكن تشغيل برنامجك عن طريق الكوماند لاين, بفتح نافذة الدوس و التصفح إلى أن تصلى إلى المجلد المحتوى على برنامجك ثم كتابة إسم البرنامج و الخواص إذا وجد.

يعنى مثلا عند تنفيذ البرنامج 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

هذا الموضوع مغلق.

مواضيع مشابهة