>> [عزف الموسيقى]
>> DOUG لويد: كل الحق، لذلك دعونا الحديث عن وسائط سطر الأوامر.
لذلك، حتى الآن في دورة جميلة الكثير كافة البرامج
وربما بدأ مثل this-- الفراغ الرئيسي كثافة العمليات.
لقد تم جمع إدخال المستخدم إذا كنا في حاجة إليها
في برامجنا، مثل برنامج ماريو، على سبيل المثال،
من قبل في برنامج المطالبات.
ونحن لا حاجة لتعديل إعلان الرئيسية،
لأنه بدلا من الداخل ونحن الرئيسية نقول فقط، قد نسميها للحصول على كثافة العمليات.
كيفية كبيرة تريد الهرم أن تكون؟
أو قد نسميها للحصول على float-- مقدار التغيير
ينبغي لي الإخراج إلى المستخدم؟
>> هناك طريقة أخرى رغم ذلك، وإذا كنا نريد مستخدمينا
لتكون قادرة على تقديم البيانات لبرنامجنا
في وقت التشغيل بدلا من حين هو برنامج التشغيل،
وهو تمييز دقيق ولكن أحيانا مفيد جدا،
نحن في حاجة إلى شكل جديد من أشكال معلنا الرئيسي.
لا يمكننا استخدام الفراغ الرئيسي كثافة العمليات إذا أردنا أن جمع البيانات الأخرى في سطر الأوامر
عندما يقوم المستخدم البرنامج، وبالتالي سائط سطر الأوامر.
>> لجمع هذه سطر الأوامر الحجج من المستخدم،
تغيير الإعلان الخاص بك الرئيسية لتبدو وكأنها this-- الباحث
الرئيسية، paren مفتوحة، الباحث ARGC، فاصلة، سلسلة ARGV، بين قوسين معقوفين،
ثم قم بفتح متعرج.
فماذا يعني ذلك بالفعل؟
حسنا، نحن في تمرير معلمتين، أو الحجج، أو مدخلات الرئيسية.
واحد، وهو عدد صحيح يسمى ARGC، والآخر ما هو؟
انها مجموعة من السلاسل، أليس كذلك؟
ونحن نرى أن تدوين قوس مربع.
انها مجموعة من السلاسل.
انها ليست سلسلة الفردية، انها مجموعة من السلاسل.
وهذه حجتين، ARGC وARGV، تمكنك من معرفة ما هي البيانات المستخدم
قدمت في سطر الأوامر وكم الأشياء التي
المقدمة في سطر الأوامر.
أشياء مفيدة جدا للعمل مع.
>> ARGC لتقف على عدد حجة، ويجب أن نعرف، بالمناسبة،
الذي يمكن أن تسميه ARGC كل ما تريد.
يمكنك الاتصال ARGV ما أردت.
هذه هي مجرد أسماء التقليدية التي نستخدمها لthem-- عدد حجة،
وكما سنرى في الثانية، ناقلات حجة، ARGV.
ولكن لم يكن لديك لدعوتهم ARGC وARGV إذا كنت لا تريد،
لكن تقليديا، وهذا ما نقوم به.
>> لذلك على أي حال، ARGC، وعدد حجة.
انها متغير من نوع عدد صحيح وهكذا، كما قد تتوقع، إذا كان لدينا شيئان
أننا في طريقنا إلى إيجاد ما يتم كتابتها هذه
وكيف الكثير من الاشياء المستخدم بكتابتها، ARGC هو
الذهاب ليقول لنا كم الاشياء المستخدم بكتابتها.
لذلك فهو يوفر لك عددا من وسائط سطر الأوامر المستخدم
كتبته عندما تم تنفيذ البرنامج.
حتى إذا كان البرنامج هو تشغيل خفض نقطة الجشع،
وداخل الجشع الخاص بك البرنامج تتمثل المهمة الرئيسية الخاصة بك
لديه إعلان الباحث الباحث الرئيسي ARGC، سلسلة ARGV بين قوسين معقوفين، ثم
ARGC في هذه الحالة هي واحدة.
لاحظ الآن لم نفعل ذلك عد الأشياء كم
المستخدم كتابتها بعد اسم البرنامج.
اسم البرنامج نفسه التهم كما وسيطة سطر الأوامر.
>> حتى دوت خفض الجشع، في هذه الحالة، ARGC واحد.
إذا كان المستخدم كتابة مائل الجشع 1024 CS50 في سطر الأوامر، ARGC في هذه الحالة
سيكون الثلاثة.
ونحن نعرف هذا لأن الطريقة أن التقسيم بين الجمل
تم الكشف هو ما إذا كان هناك مسافة أو علامة تبويب،
أو شيء من هذا القبيل بينهما.
لذلك فإن أي مقدار المساحة البيضاء، ما يسمى، بين القيم كتابة سطر الأوامر
يشير إلى عدد هناك.
حتى دوت خفض مساحة الجشع 1024 الفضاء CS50، ARGC، في هذه الحالة، هو ثلاثة.
>> ARGV هو متجه حجة.
ناقلات، بالمناسبة، هو فقط كلمة أخرى للمجموعة،
وهذا هو مجموعة يخزن الجمل.
سلسلة واحدة لكل عنصر، وهو السلاسل التي المستخدم الواقع
كتبته في سطر الأوامر عندما تم تنفيذ البرنامج.
الآن، كما هو الحال مع أي مجموعة، إذا كنت
أذكر من مناقشتنا ل المصفوفات، العنصر الأول من ARGV
دائما ما يمكن العثور عليها في ARGV قوس مربع الصفر.
هذا هو المؤشر الأول من مجموعة ARGV.
بحيث will-- في واقع الأمر، أن الإرادة يكون اسم البرنامج هو الحال دائما،
ودائما يكون موجودا في ARGV قوس مربع الصفر.
>> تم العثور على العنصر الأخير من ARGV دائما في ARGV أقواس مربعة ARGC ناقص واحد.
هل ترى لماذا؟
أتذكر كيف العديد من العناصر توجد في هذه المجموعة.
حسنا، نحن نعلم هكذا- يضرب انها ARGC عدد من العناصر.
إذا كان المستخدم كتابة ثلاثة أشياء في سطر الأوامر، ARGC ثلاثة.
ولكن لأنه في ج، عندما كنا نعمل مع المصفوفات، كل عنصر من عناصر المصفوفة،
أو بالأحرى مؤشرات مجموعة، بدء من الصفر.
اذا كان لدينا ثلاثة عناصر في منطقتنا مجموعة، لدينا عنصر في ARGV الصفر،
عنصر في ARGV واحد، وعنصر في ARGV اثنين.
لا يوجد أي عنصر في ARGV ثلاثة، ومجموعة من حجم الثلاثة.
ولهذا السبب الأخير عنصر ARGV يمكن دائما
يمكن العثور عليها في ساحة ARGV بين قوسين ARGC ناقص واحد.
>> لذلك دعونا نفترض أن ينفذ المستخدم برنامج الجشع كما follows--
إذا كانت اكتب في سطر الأوامر نقطة خفض الجشع مساحة 1024 CS50 الفضاء،
ولأي سبب من الأسباب قمنا أعدت بالفعل برنامج الجشع لدينا
لمعرفة والعمل مع هذه وسائط سطر الأوامر.
لم نكن في السابق عندما عملنا عليه لمشكلة الجشع،
ولكن دعنا نقول لقد المعدلة الآن بحيث نقوم به عملية
وسائط سطر الأوامر في بعض الطريق.
في هذه الحالة، ARGV الصفر غير مائل دوت الجشع.
ما هو ARGV واحد؟
حسنا، انها 1024، أليس كذلك؟
فمن 1024، ولكن هنا ل distinction-- المهم حقا
هل تذكرين نوع بيانات ARGV؟
>> لأنه يخزن الجمل، أليس كذلك؟
ولكن يبدو 1024 هي قيمة عددية.
هذا هو المهم حقا التمييز، وفعلا
سوف تصبح شيئا ان كنت قد تواجه مشاكل في وقت لاحق.
كل شيء في ARGV هي تخزينها كسلسلة.
حتى محتويات ARGV المرء هي سلسلة واحدة، صفر، اثنان، أربعة،
وتتألف هذه الأحرف الأربعة.
انها كما لو أن المستخدم كتابة واحد صفر، اثنان، أربعة
كما الحروف أو الحروف الفردية.
أنها ليست صحيحا 1024، ولذا لا يمكن مباشرة
العمل معها بالقول كثافة العمليات 1000، أو بدلا الباحث س يساوي ARGV واحد ناقص 24.
>> حدسي، قد تعتقد ذلك كما، حسنا، حسنا انها 1024 ناقص 24،
لذلك س يساوي 1000.
ولكن في الواقع، وهذا ليس هو الحال، لأن ARGV هو واحد من سلسلة.
السلسلة 1024.
الآن هناك وظيفة التي يمكن أن تكون تستخدم لتحويل السلاسل إلى أعداد صحيحة.
وأنا لن يفسد لانها لكم الآن، ولكن أنا متأكد من Zamyla
وسوف نكون سعداء أن أقول لكم عن ذلك في تجول لمشكلة في المستقبل.
ولكن يمكنك أن تجد أيضا عذر مشاكل like--
لي، وظائف التي من شأنها أن القيام بذلك في اشارة 50،
إذا ذهبت إلى الدليل المرجعي يمكنك العثور على وظيفة أن
سيجعل هذا التحويل بالنسبة لك.
ولكن مرة أخرى، في تجول للمشكلة في المستقبل،
سوف نكون سعداء لZamyla اقول لكم ما وظيفة
فمن الذي سيتم تحويل سلسلة 1024 إلى 1024 عدد صحيح.
>> كل الحق، تتحرك هلم جرا.
لقد غطت صفر ARGV لدينا، لقد غطت ARGV واحد.
ماذا يوجد في ARGV اثنين؟
CS50.
أن واحدا على الارجح جميلة لا تحتاج إلى شرح.
ماذا يوجد في ARGV الثلاثة؟
حسنا مرة أخرى، نحن لا نعرف حقا، أليس كذلك؟
لدينا مجموعة من حجم ثلاثة، هذه هي الطريقة العديد من العناصر المستخدم
كتبته في سطر الأوامر، حتى إذا ذهبنا إلى ARGV الثلاثة،
نحن تجاوز الآن حدود مجموعة لدينا.
سوف المترجم اسمحوا لنا القيام بذلك، لا توجد مشكلة بديهية معها،
ولكن من حيث الواقع ما يحدث أن يحدث، ونحن لا نعرف حقا.
ذلك يعتمد على ما هو تقع في الذاكرة حيث
ARGV من المتوقع أن يكون الثلاثة.
ولذا فإننا يمكن أن ينتهي الحصول على بعيدا مجانا الاسكتلندي.
أكثر عرضة من لم يكن كذلك، لا سيما عندما كنت تعمل مع ARGV مقابل
إلى أي مجموعة أخرى هذا في برنامجنا،
نحن المحتمل أن تعاني تجزئة الخطأ. ذلك مرة أخرى،
تأكد من عدم تجاوز حدود صفائف الخاص بك، ARGV بشكل خاص،
نظرا درجة عالية من أهمية في البرامج الخاصة بك.
>> أنا دوغ ويد.
هذا هو CS50.