argv و argc به چه دردی می خورن ؟ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

وبـــلاگ هــفت خــط کــد


آموزش های برنامه نویسی
۶۰ نفر آنلاین
۱ عضو و ۵۹ مهمان در سایت حاضرند

argv و argc به چه دردی می خورن ؟

+4 امتیاز
229 بازدید

من وقت توی ویژوال استودیو یک پروژه C++ میسازم بصورت خودکار 2 تا متغیرargc و argv میزاره داخل main برنامه کار این 2 تا چیه ؟!

سوال شده آذر 3, 1392  بوسیله ی 13mody (امتیاز 249)   1 6 29
البته برای برنامه‌های لینوکس بیش تر به درد می‌خورن چون اون جا برنامه‌های terminal زیاده و همه‌ این برنامه ‌ها آرگومان می‌خوان تا بدونن چیکار کنن.

3 پاسخ

+6 امتیاز
 
بهترین پاسخ

وقتیکه برنامه شما اجرا میشه به صورت پیش فرض یک پارامتر داره و آن هم نام برنامه شماست.یعنی argc=1 و argv[0]="program path"

یک مثال کاربردی میزنم براتون.شما یک برنامه پردازش تصویر نوشتید که در حالت عادی برنامه با web cam کار می کنه و در حالت دیگر کاربر می تونه بجای اینکه capture رو از وب کم داشته باشه می تونه capture رو از فایل بگیره که در این صورت بایستی نام فایل رو مشخص کنه.

EcvCapture capture;
if (argc == 1)
  capture.captureFromCamera(0);
else if (argc == 2)
capture.captureFromFile(argv[1]);

 

 

پاسخ داده شده آذر 3, 1392 بوسیله ی مصطفی ساتکی (امتیاز 16,732)   17 25 66
+6 امتیاز
int main(int argc, char** argv)

این 2 تا متغیر برای اجرای برنامه از طریق خط فرمان استفاده میشن .

argv یک ارایست که محل اجرای فایل و مقادیر ورودی رو نگه میداره .

تعداد پارامتر های ورودی یا اندازه argv هم در argc ذخیره میشه .

پاسخ داده شده آذر 3, 1392 بوسیله ی BlueBlade (امتیاز 15,712)   13 16 85
+2 امتیاز
یه مثال واضحتر اینکه شما دستور dir /p رو تو کامند میدونین که این p/ پارامتری هستش که به دستور dir فرستاده میشه این همون argv و اسم برنامه که dir هستش همون argc هستش. اینطوری مینونین برنامه هایی بنویسید که بشه بهشون پارامتر فرستاد . البته تو سیستم عامل هم وقتی که شما یه برنامه یا فایل مثلا doc. رو روی برنامه office میندازید همین اتفاق می افته آفیس با پارامتر که اسم فایل به همراه مسیرش هست رو میتونه به راحتی باز کنه و نیازی به باز کردن اون بعد از اجرای آفیس نیست.
پاسخ داده شده مرداد 17, 1393 بوسیله ی tux-world (امتیاز 176)   6
...