سؤال

لدي مشروع لفئة هياكل البيانات الخاصة بي، وهو عبارة عن ضاغط ملفات يعمل باستخدام الأشجار الثنائية وأشياء أخرى.نحن مطالبون "بضغط" و"فك ضغط" أي ملف معين باستخدام الإرشادات التالية في سطر الأوامر:

للضغط: ضاغط.exe -ملف مضغوط.مهما كان

لفك الضغط: ضاغط.exe -فك ضغط الملف.zip

نحن نبرمج في سي ++.أستخدم رمز IDE::Blocks وأقوم بالتجميع باستخدام دول مجلس التعاون الخليجي في نظام التشغيل Windows.

سؤالي هو: فكيف يمكنك تنفيذ ذلك؟؟!! كيف يمكنك جعل ملف .exe الخاص بك يتلقى هذه المعلمات في سطر الأوامر، ثم ينفذها بالطريقة التي تريدها؟

أيضًا، هل هناك أي شيء خاص يجب أخذه في الاعتبار إذا كنت أرغب في تجميع هذا التنفيذ في Linux؟

شكرا لمساعدتك

هل كانت مفيدة؟

المحلول 3

لو Logré, أنا حصلت عليه!!

لدي الآن فهم أساسي حول كيفية استخدام argc و أرجف[] المعلمات على رئيسي() وظيفة (I دائماً تساءلت عما كانوا صالحين له ...).على سبيل المثال، إذا قمت بإدخال سطر الأوامر:

ضاغط.exe -فك ضغط الملف.zip

ثم:

  • تهيئة argc في "3" (عدد الوسائط في السطر)
  • argv[0] == "compressor.exe" (اسم التطبيق.)
  • argv[1] == "-فك الضغط"
  • argv[2] == "file.zip"

جريج (ليس "كريج"، آسف =P) وبيمروز، شكرًا لكم يا رفاق على مساعدتكم!!^^

نصائح أخرى

قد ترغب في البحث في نص البرمجة الخاص بك عن توقيع ملف main وظيفة، نقطة دخول البرنامج الخاص بك.هذا هو المكان الذي ستتمكن فيه من سحب معلمات سطر الأوامر تلك.

لا أريد أن أكون أكثر تفصيلاً من ذلك لأن هذه على ما يبدو نقطة أساسية في المهمة، وإذا وجدت نفسي أعمل معك، أتوقع منك أن تكون قادرًا على اكتشاف هذا النوع من الأشياء بنفسك بمجرد حصولك على دفعة مناسبة.:)

حظ سعيد!

على ما أذكر، تحدد مواصفات UNIX الفردية/POSIX com.getopt في unistd.h للتعامل مع تحليل الوسائط نيابة عنك.على الرغم من أن هذه دالة في لغة C، إلا أنها يجب أن تعمل أيضًا في لغة C++.

جنو جليبك لديه هذا بالإضافة إلى getopt_long (في getopt.h) لدعم أسلوب GNU الممتد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top