Mohssen A Mohssen نشر 24 نوفمبر 2021 أرسل تقرير نشر 24 نوفمبر 2021 لدي برنامج بسيط مكتوب بلغة ++C وأريد أن أقوم بتمرير بعض البيانات عند تشغيله من خلال سطر الأوامر: C:\> main.exe myValue1 myValue2 كيف أصل إلى هذه المدخلات من داخل البرنامج نفسه؟ هل يجب أن أستعمل مكتبة معينة؟ 1 اقتباس
1 سامح أشرف نشر 24 نوفمبر 2021 أرسل تقرير نشر 24 نوفمبر 2021 لا تحتاج إلى أي مكتبات للقيام بهذا الأمر حيث يقوم المصرِّف تلقائيًا بتمرير عدد هذه القيم المدخلة arguments إلى البرنامج وقيمها أيضًا إلى الدالة main، لذلك تحتاج إلى أستقبال هذه القيم في شكل معاملات parameters int main(int argc, char** argv) { std::cout << "The total arguments is " << argc << std::endl; std::cout << "The file name is " << argv[0] << std::endl; std::cout << "The first argument is " << argv[1] << std::endl; return 0; } عند تشغيل البرنامج السابق وتمرير كلمة Hsoub إليه فستجد أن البرنامج يقوم بطباعة التالي: C:\> main.exe Hsoub The total arguments is 2 The file name is main.exe The first argument is Hsoub المعامل الأول الذي يتم تمريره إلى الدالة main هو عدد صحيح عبارة عن عدد المدخلات، بينما المعامل الثاني فيعبر عن كل القيم الممرة وتكون أول قيمة هي اسم البرنامج نفسه. ملاحظة: المعامل الأول يكون دائمًا اسم البرنامج نفسه في سطر الأوامر (main.exe)، لذلك فإن سنجد أن عدد المدخلات في المثال السابق هو 2 وليس 1 يمكن أيضًا إستخدام الكود التالي وستحصل على نفس النتيجة: int main(int argc, char** argv) { // ... } ملاحظة في حالة تمرير أكثر من معامل سيتم الفصل بينهم من خلال المسافة: C:\> main.exe Hello World The total arguments is 3 The file name is main.exe The first argument is Hello في المثال السابق يتم تمرير كلمة Hello كمعامل ثاني وكلمة World كمعامل ثالث، ولكي يتم تتمرير الكلمتين كمعامل واحد فقط يجب أن يتم وضعهم داخل علامة تنصيص، على النحو التالي: C:\> main.exe "Hello World" The total arguments is 3 The file name is main.exe The first argument is Hello World 1 اقتباس
السؤال
Mohssen A Mohssen
لدي برنامج بسيط مكتوب بلغة ++C وأريد أن أقوم بتمرير بعض البيانات عند تشغيله من خلال سطر الأوامر:
C:\> main.exe myValue1 myValue2
كيف أصل إلى هذه المدخلات من داخل البرنامج نفسه؟ هل يجب أن أستعمل مكتبة معينة؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.