[Powered by Google Translate] [کمانڈ لائن کے دلائل]
[کرسٹوفر Bartholomew - ہارورڈ یونیورسٹی]
[- CS50.TV یہ CS50 ہے]
ایک پروگرام کے لئے ایک مفید خصوصیت صارف کی ان پٹ کو قبول کرنے کے لئے ہے.
اس طرح اب تک، ہم CS50 لائبریری کے اندر اندر کچھ افعال کی ہے
اس طرح کے طور پر صارف کی ان پٹ، قبول "سٹرنگ کو حاصل کریں،"
جو صارف کا اشارہ ملتا ہے، جبکہ درخواست چل رہا ہے ایک تار کے لئے،.
>> تاہم، مقدمات ہیں جہاں آپ کو آپ کے پروگرام کی ان پٹ فراہم کرنے کے لئے چاہتے ہیں
سے پہلے یہ اصل میں چل رہا ہے.
اس طرح، آپ کو آپ کے صارف سے اضافی معلومات کے لئے کہنے کی ضرورت نہیں ہے
جبکہ ایک آسان کام قتل.
مثال کے طور پر، لو، MV یا UNIX میں اقدام کمانڈ.
یہ کمانڈ کی مدد سے صارف کو ایک مقام سے دوسرے فائل کو منتقل کرنے کے لئے کی اجازت دیتا ہے ہے.
دستی صفحات کے مطابق، MV دو کمانڈ لائن دلائل قبول کرتا ہے:
فائل ہے جو ہے منتقل کر دیا گیا کیا جا رہا ہے اور مقام فائل کیا جا رہا ہے پر منتقل کر دیا گیا ہے.
تو یہ مثال کے طور پر دو دلائل کے ساتھ ایک کمانڈ ہے.
تو ہم اپنے سی کے پروگرام سے کس طرح ان دلائل کمانڈ لائن کا استعمال کرنے کی کیا کہا تھا؟
>> ٹھیک ہے، یہ پتہ چلا ہے کہ اہم، جو ہم C کے تمام پروگراموں میں استعمال کرتے ہیں، ایک راز ہے.
argc اور argv: مین دو وتر خاص قبول کرتا ہے.
ان شرائط پر جانے دو.
>> پہلا پیرامیٹر، argc، جو دلیل شمار کے لئے کھڑا ہے،
عددی ڈیٹا کی قسم ہے.
argc پیرامیٹر میں دلائل کے حکم نمبر، بشمول پر مشتمل ہے.
ہماری اقدام کی کمان میں، اگرچہ ہم صرف دو دلائل ظاہر ہے،
argc قیمت 3 ہو جائے گا.
دوسرے پیرامیٹر، argv، جو دلیل ویکٹر کے لئے کھڑا ہے،
ایک صف چار اشارہ ہے کہ تاروں کی طرف اشارہ ہے.
>> اس کا مطلب یہ ہے کہ argv میں ہر عنصر، صفر سے شروع ہونے والی ہے،
کمان اور دلائل پر مشتمل ہے.
مثال کے طور پر، argv [0]، جس میں صفر argv کے طور پر حوالہ دیتے ہیں گے،
حکم ہے جو چلائی جا رہی ہے ہمیشہ شامل ہوں گے -
اس صورت میں، MV.
argv [1] پہلی دلیل، file.txt شامل ہوں گے،
اور argv [2] دوسری دلیل پر مشتمل گا، ~ / / cs50.
argv کے آخری دلیل خالی ہمیشہ رہے گا.
تو ان دلائل کمانڈ لائن پر عملدرآمد.
گزشتہ مشقوں میں، ہم باطل رکھ دیا گیا ہے، کچھ نہیں کا مطلب ہے اہم پیرامیٹر کے طور پر،.
تاہم، ہمیں حکم میں دلائل کمانڈ لائن استعمال کرنے کے لئے،
ہم نے اہم int argc، چار * argv] [باطل اور جگہ کے اندر کو دور کرنے کی ضرورت ہے.
اب، argv سے پورے عنصر، جو اپنے دلائل ہیں تک رسائی حاصل کرنے کے لئے،
آپ، صرف یا اس طرح صف کے ذریعے iterate لوپ کر سکتے ہیں.
تو اہم جسم کے، اندر، ہمیں آگے جانا ہے اور لوپ کے لئے ایک قسم کی جا رہے ہیں:
(int میں = 0، میں + +، میں <argc).
>> ہم نے ایک گھوبگھرالی منحنی خطوط وحدانی کی ضرورت نہیں ہے کیونکہ ہم صرف کوڈ کا ایک لائن پر عمل کر رہے ہیں
اس لوپ کے جسم کے اندر.
ہم آگے بڑھیں اور ٹیب ایک بار مار دونگا،
پھر printf ٹائپ ("argv [٪ D]، ایک عددی قیمت کی نمائندگی کرنے
کی فیصد ہے، سٹرنگ کے لئے، تو نئی سطر کردار ہے.
پھر ہم printf فراہم کرتے ہیں لوپ کی موجودہ iteration کے لئے
اور argv [] موجودہ دلیل کمانڈ لائن کے تار کی نمائندگی کے لئے.
جب ہم نے دو دلائل کے ساتھ چلاتے ہیں، ہم نے کیا جا رہا ہے ٹرمینل میں ظاہر دلائل نظر آئے گا.
اس سے قبل ہم نے کہا ہے کہ argv چار اشارہ کی ایک صف منعقد.
>> تو، اگر یہ معاملہ ہے، تو ہم کس طرح ہر بحث میں انفرادی حروف تک رسائی؟
مثال کے طور پر، کیا ہوا اگر میں نے پہلی بحث میں ایک مخصوص کردار تلاش کرنے کے لئے کرنا چاہتا تھا؟
ٹھیک ہے تو اس کا جواب یہ ہے کہ ہم ایک اندر در اندر لوپ کو لاگو کرنے کی ضرورت ہے
جو دلیل سٹرنگ میں عناصر میں سے ہر ایک کے ذریعے iterate گا.
یہ ہے کہ آپ اسے کس طرح کرتے ہیں.
>> سب سے پہلے، ہم example2.c کی ایک کاپی بنانے کے لئے جا رہے ہیں.
اس کے بعد، اندر لوپ کے لئے سب سے پہلے،
ہم لوپ کے لئے ایک اضافی شامل کرنے کے لئے جا رہے ہیں.
تو (int J = 0، (ن) strlen = (argv [میں]،)
جو اس کے بعد ہمیں موجودہ دلیل کی لمبائی دیتا ہے،
، J ن <؛ J +) +
ہم نے ہر کردار کے محل وقوع کے پرنٹ کے لئے جا رہے ہیں
printf کا استعمال کرتے ہوئے کی طرف سے موجودہ دلیل کے اندر.
تو، printf ("argv [٪ D]، موجودہ دلیل کی انڈیکس کی نمائندگی
تو [٪ D] ایک بار پھر، موجودہ دلیل کی موجودہ کردار کی نمائندگی
ہے:٪ C دلیل میں موجودہ کردار کے لئے.
آخر میں، ہم بیرونی لوپ کی فہرست کے ساتھ printf فراہم کرتے ہیں، میں
تو اندرونی لوپ کی فہرست.
>> اور ہماری آخری کی دلیل printf فراہم کردہ دلیل سے اصل کردار ہے
کمانڈ لائن پر.
اب، میں سٹرنگ strlen تقریب کا استعمال کیا ہے ایک تار کی لمبائی کو حاصل کرنے کے لئے کی وجہ سے،
میں string.h لائبریری بھی ہمارے شامل ہیں کے سب سے اوپر پر شامل کرنا لازمی ہے.
ایسا ہے، تو ایسا کرنے کے لئے، ہم نے جانا، اور صرف stdio.h کے تحت، ہم کرنے جا رہے ہیں کریں گے
# شامل ہیں.
>> تو، اور چلانے آرکائیو کریں اور اسے ایک حقیقی دلیل فراہم کریں.
>> اور ہم کے طور پر دیکھ سکتے ہیں، اب ہم دلیل میں ہر انفرادی حروف کی صحیح جگہ ہے.
تو یہ بات ہے. میں کرسٹوفر Bartholomew ہوں، اس CS50 ہے.
[CS50.TV]