>> [MUSIC PLAYING]
>> DOUG LLOYD: Bütün sağ, belə edək command-line dəlilləri haqqında danışmaq.
Belə ki, bu günə qədər əlbəttə olduqca proqramları çox bütün
yəqin ki, başlayıb şeylərdir int əsas boşluq kimi.
Biz toplanması olduğunuz istifadəçi girişi biz bunu lazımdır, əgər
kimi proqramlar da, Mario proqram, məsələn,
in-proqram ister tərəfindən.
Biz dəyişdirmək üçün lazım deyil əsas bəyannamə,
çünki əvəzinə əsas biz daxilində yalnız int almaq üçün zəng edə bilər, deyirlər.
Necə böyük piramida olmaq istəyirsiniz?
Və ya almaq üçün zəng edə bilər nə qədər dəyişiklik float
istifadəçi I çıxış lazımdır?
>> Başqa bir yol olsa da var və biz istifadəçilər istəyirsinizsə
təmin etmək üçün Bizim proqram data
yerinə isə iş zamanı proqram, çalışan
bir incə fərq, lakin bəzən bir çox faydalı bir,
biz əsas elan yeni bir forma lazımdır.
Biz istəyirsinizsə int əsas etibarsız istifadə edə bilməz command-line digər məlumatları toplamaq
istifadəçi proqram çalışır zaman, beləliklə command-line dəlilləri.
>> Bu skript satırı toplamaq istifadəçi dəlilləri,
Sizin bəyannamə dəyişə şeylərdir int kimi baxmaq üçün əsas
əsas, açıq paren, int argc, vergül, string argv, kvadrat mötərizədə,
və sonra buruq brace açın.
Belə ki, artıq nə deməkdir?
Yaxşı, biz iki parametrləri keçən, əsas və ya dəlilləri və ya giriş.
One, bir tam adlı argc və digər nədir?
Bu hüququ, strings bir sıra var?
Biz bu kvadrat mötərizə notation görmək.
Bu strings bir sıra var.
Bu fərdi simli deyil, Bu strings bir sıra var.
Və bu iki dəlilləri, argc və argv, nə data istifadəçi bilmək imkan
command-line təmin edib və necə bir çox şeyi onlar
command-line təmin.
Ilə işləmək üçün olduqca faydalı şeylər.
>> Argc, dəlil sayı tərəfdardır Siz yolu ilə, bilməlidir,
Siz argc zəng edə bilər ki, Siz istədiyiniz hər hansı.
Siz istəyirdi nə argv zəng edə bilərsiniz.
Bu yalnız şərti adları biz Odur arqument sayı üçün istifadə ki,
və biz ikinci görəcəksiniz kimi, dəlil vektor, argv.
Amma onlara zəng yoxdur Siz istəmirsinizsə argc və argv,
lakin şərti ki, biz nə var.
>> Belə ki, hər halda, argc, dəlil count.
Bu tam tipli dəyişən və, belə ki, biz iki şeyi varsa, gözləmək bilər
biz tapmaq olacaq ki, bu tipli nə
və nə qədər stuff istifadəçi tipli, argc var
nə qədər bizə davam çap istifadəçi mövzusu.
Bu bir sıra verir, belə ki, command-line dəlilləri istifadəçi
proqram icra edildiyi yazılmış.
Proqram Belə ki dot görməmiş doğramaq run,
və görməmiş daxilində Sizin əsas funksiyası proqram
bəyannamə int əsas int argc var, string, sonra kvadrat mötərizə argv
bu halda argc biridir.
İndi biz bunu qeyd necə bir çox şeyi saymaq
istifadəçi proqram adına yazılmış.
proqram adı özü sayar bir command-line arqument kimi.
>> Belə ki, görməmiş doğramaq dot bu halda, argc biridir.
Istifadəçi çizgi görməmiş 1024 CS50 tipli əgər bu halda argc command-line, at
üç olardı.
Və biz yol, çünki bu bilirik ki strings arasında bölgüsü
olub aşkar bir yer, və ya nişanı var,
və ya onların arasında kimi bir şey.
Belə ki, ağ kosmik hər hansı məbləği, sözdə, dəyərləri arasındakı command-line tipli
Orada nə qədər çox göstərir.
Belə ki, görməmiş Space 1024 yer doğramaq nöqtə CS50, argc, bu halda, üç edir.
>> Argv dəlil vektor edir.
Vector, yeri gəlmişkən, yalnız bir sıra üçün başqa bir söz,
bu bir sıra edir ki strings saklar.
Element başına bir string, strings ki, istifadəçi həqiqətən
command-line tipli Proqram edam edildi zaman.
İndi kimi belədir Hər hansı bir sıra ilə, əgər
bizim müzakirə geri Diziler, argv ilk element
həmişə əldə etmək niyyətindədir argv kvadrat mötərizə sıfır.
Bu ilk index var argv array.
Belə ki, will-- və əslində, bu iradə həmişə proqramı adı,
həmişə yerləşən olunacaq argv kvadrat mötərizə sıfır.
>> argv son element həmişə görüntülərini argv kvadrat mötərizədə argc minus biri.
Niyə görürsünüz?
Neçə elementləri saxla Bu array var.
Bəli, biz bu that-- bilirik elementlərin argc nömrəsi.
Istifadəçi üç şey tipli əgər command-line, argc üç edir.
Amma c, biz çalışırıq Diziler ilə, serialın hər element,
bir və ya daha çox göstəriciləri array, sıfır da başlanır.
Biz üç elementləri varsa, bizim array, biz argv sıfır bir element var
argv bir bir element, argv iki və element.
Argv heç bir element yoxdur üç, və ölçüsü üç bir sıra.
Belə ki, niyə son var argv element həmişə bilərsiniz
argv meydanında əldə etmək Mötərizədə argc minus biridir.
>> Belə ki, istifadəçi icra edəcəyi güman edək Bu aşağıdakı kimi görməmiş proqram
onlar command-line dot yazın əgər , görməmiş space 1024 space CS50 doğramaq
və hər hansı səbəbdən biz artıq bizim görməmiş proqram hazırlayıb
bilirik və bu ilə işləmək üçün command-line dəlilləri.
Biz işləyərkən biz əvvəllər vermədi görməmiş problem bu,
lakin indi redaktə etdik deyək Bu ki, biz prosesi nə
bir şəkildə command-line dəlilləri.
Bu halda, sıfır argv dot çizgi görməmiş edir.
Argv bir nədir?
Bəli, bu, sağ 1024 var?
Bu 1024, lakin burada bir var həqiqətən əhəmiyyətli distinction--
Siz argv data növü xatırlayırsınız?
>> Bu doğru, strings mağazalar?
Amma bu 1024 kimi görünür tam dəyəri.
Bu həqiqətən vacibdir fərq, və əslində
bir şey olmaq üçün gedir ki, sonra problemləri qarşılaşa bilər.
Argv hər şey bir string kimi saxlanılır.
Belə argv bir məzmunu var string bir sıfır, iki, dörd,
bu dörd simvol ibarət.
Bu istifadəçi yazdığınız kimi deyil bir sıfır, iki, dörd
fərdi məktublar və ya simvol kimi.
Bu, tam 1024 deyil və siz birbaşa bilməz
int 1000 deyərək bu iş, və ya daha int x argv bir minus 24 bərabərdir.
>> Daxilən, siz ki, hesab bilər OK, yaxşı, bu, 1024 minus 24 var, kimi
belə x 1000 bərabərdir.
Amma əslində, ki, belə deyil argv bir string çünki.
string 1024.
İndi ola bilər ki, bir funksiyası var integers üçün strings çevirmək üçün istifadə olunur.
Mən sizin üçün korlamaq deyil İndi, amma Zamyla əminəm
bu barədə sizə xoşbəxt olacaq gələcək problem üçün gözden geçirmek.
Amma siz də tapa bilərsiniz problemləri like-- bəhanə
Mənə funksiyaları ki, ki, yalnız 50 bunu,
Siz kitabçası getmək əgər Bir funksiyası tapa bilərsiniz ki,
Sizin üçün bu dönüşüm edəcək.
Ancaq yenə də, gözden geçirmek gələcək problem,
Zamyla üçün xoşbəxt olacaq nə funksiyası sizə xəbər
bu çevirmək olacaq tam 1024 string 1024.
>> Bütün hüquqlar, belə hərəkət.
Biz argv sıfır əhatə etdik biz bir argv əhatə etdik.
Nə argv iki var?
CS50.
Ki, bir yəqin olduqca özünü izahlı edir.
Nə argv üç var?
Yaxşı daha, biz həqiqətən bilmirəm, sağ?
Biz, ölçüsü üç bir sıra var ki, neçə elementləri istifadəçi
command-line tipli, belə ki, biz üç argv getmək əgər,
biz indi overstepping edirik bizim serialın həddi.
compiler, bizə bunu bildirin edəcək heç bir intuitiv problem ilə var,
lakin həqiqətən baxımından nə olacaq baş, biz, həqiqətən bilmirəm.
Bu nə asılıdır yaddaş harada yerləşir
argv üç olması gözlənilir.
Və belə ki, biz başa bilər üz qəzasız bəlasız pulsuz əldə.
Daha çox heç-dən, xüsusən də fərqli olaraq argv çalışırıq
hər hansı digər array ki, bizim proqram var
biz yəqin ki, əziyyət olacaq bir seqmentasiya günah. Belə ki, yenə,
həddini aşmasından əmin ola Sizin serialların, xüsusilə argv,
onun yüksək dərəcəsi verilir Sizin proqramları əhəmiyyəti.
>> Mən Doug Lloyd edirəm.
Bu CS50 edir.