من وقت توی ویژوال استودیو یک پروژه C++ میسازم بصورت خودکار 2 تا متغیرargc و argv میزاره داخل main برنامه کار این 2 تا چیه ؟!
وقتیکه برنامه شما اجرا میشه به صورت پیش فرض یک پارامتر داره و آن هم نام برنامه شماست.یعنی 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]);
int main(int argc, char** argv)
این 2 تا متغیر برای اجرای برنامه از طریق خط فرمان استفاده میشن .
argv یک ارایست که محل اجرای فایل و مقادیر ورودی رو نگه میداره .
تعداد پارامتر های ورودی یا اندازه argv هم در argc ذخیره میشه .