>> [Mūzikas atskaņošanai]
>> Doug LLOYD: Labi, tāpēc pieņemsim runāt par komandrindas argumentus.
Tātad, līdz šim gaitā diezgan daudz visas programmas
ir iespējams, sākās tāpat this-- int main tukšumu.
Mēs esam apkopojam lietotāja ievadi, ja mums tas ir vajadzīgs
mūsu programmu, tādu kā Mario programma, piemēram,
ar in-programmā uzvedņu.
Mums nav nepieciešams, lai mainītu deklarāciju par galveno,
jo tā vietā iekšpusē galvenā mēs tikai teikt, jūs varat zvanīt, lai saņemtu int.
Cik liela jūs vēlaties piramīda būt?
Vai jūs varat zvanīt, lai saņemtu float-- cik daudz pārmaiņu
man būtu izeja lietotājam?
>> Ir vēl viens veids, lai gan, un, ja mēs vēlamies, lai mūsu lietotājiem
lai varētu nodrošināt datus mūsu programma
runtime nevis brīdi programma darbojas,
smalks atšķirība, bet dažreiz ļoti noderīgs viens,
mums ir nepieciešama jauna veida deklarēt galvenais.
Mēs nevaram izmantot int galveno spēku, ja mēs vēlamies, lai savākt citus datus komandrindas
ja lietotājs palaiž programmu, tātad komandrindas argumentus.
>> Savākt šos komandrindas argumenti, no lietotāja,
mainīt savu deklarāciju Galvenais, lai izskatās this-- int
Main, atvērtas paren, int argc, komats, string argv, kvadrātiekavas,
un tad atveriet cirtaini lencēm.
Tātad, ko tas nozīmē jau?
Nu, mēs iet ar diviem parametriem, vai argumentus, vai izejvielas uz galveno.
Viens, vesels skaitlis sauc argc, un otrs ir tas, ko?
Tas ir masīvs stīgas, vai ne?
Mēs redzam, ka kvadrātiekava notācija.
Tas ir masīvs stīgas.
Tas nav indivīds string, tas ir masīvs stīgas.
Un šie divi argumenti, argc un argv, ļauj jums zināt, ko datu lietotājs
ir sniedzis pie komandrindas un cik daudz viņi
sniegti komandrindas.
Diezgan noderīgas lietas strādāt.
>> Argc stendi arguments skaits, un jums vajadzētu zināt, starp citu,
ka jūs varētu zvanīt argc ko jūs vēlaties to.
Jūs varat zvanīt argv ko jūs vēlējāties.
Šie ir tikai parastie nosaukumi ka mēs izmantot them-- arguments skaits,
un kā mēs redzēsim sekundē, arguments vektors, argv.
Bet jums nav viņiem piezvanīt argc un argv ja jūs nevēlaties,
bet parasti, tas ir tas, ko mēs darām.
>> So anyway, argc, arguments skaits.
Tas ir vesels skaitlis tipa mainīgo un tā, kā jūs varētu gaidīt, ja mums ir divas lietas
ka mēs ejam, lai būtu atrast , kādi tie ir drukāti
un cik daudz sīkumi lietotājs drukāti, argc ir
dodas, lai pastāstītu mums, cik daudz sīkumi lietotājs drukāti.
Tātad, tas dod jums vairākas komandrindas argumentus lietotājs
drukāti, kad programma tika izpildīts.
Tātad, ja jūsu programma ir palaist dot slash mantkārīgs,
un iekšpusē jūsu mantkārīgs ieprogrammēt savu galveno funkciju
ir deklarācija int galvenais int argc, stīgu argv kvadrātiekavas, tad
argc šajā gadījumā, ir viens.
Tagad paziņojums mums nav saskaitīt, cik daudzas lietas
lietotājs drukāti pēc programmas nosaukuma.
Programma Nosaukums pats par sevi skaitās kā komandrindas argumentu.
>> Tātad dot slash mantkārīgs, jo ka gadījumā, argc ir viens.
Ja lietotājs drukāti slash mantkārīgs 1024 CS50 pie komandrindas, argc šajā gadījumā
būtu trīs.
Un mēs zinām, tas tāpēc, ka ceļš ka dalījums starp stīgām
tiek konstatēts, vai tur ir telpa, vai tab,
vai kaut kas līdzīgs, ka starp tām.
Tāpēc jebkura summa atstarpēm, tā saukto, starp vērtībām drukāti komandrindas
norāda, cik daudz tur ir.
Tātad dot slash mantkārīgs Space 1024 telpu CS50, argc, šajā gadījumā, ir trīs.
>> Argv ir arguments vektors.
Vector, starp citu, ir tikai cits vārds masīva,
un tas ir masīvs kas saglabā stīgas.
Viena rinda uz elementu, kas ir stīgas, ka lietotājs faktiski
drukāti pie komandrindas kad programma tika izpildīts.
Tagad, kā tas ir ar jebkuru masīvs, ja jums
atceros no mūsu diskusijas par bloki, tad no argv pirmais elements
vienmēr būs atrodami at argv kvadrātiekava nulles.
Tas ir pirmais indekss no argv masīva.
Tā, ka will-- un patiesībā, ka griba vienmēr ir programmas nosaukums,
vienmēr atrasties argv kvadrātiekava nulle.
>> Pēdējais elements argv vienmēr ir atrasts at argv kvadrātiekavas argc mīnus viens.
Vai jūs redzat, kāpēc?
Atcerieties, cik daudz elementu pastāv šajā masīvā.
Nu, mēs zinām, that-- tas ir argc elementu skaits.
Ja lietotājs drukāti trīs lietas komandrindas, argc ir trīs.
Bet tāpēc, ka c, kad mēs strādājam ar blokiem, katrs no masīva elements,
vai drīzāk indeksi masīvs, sākot no nulles.
Ja mums ir trīs elementi mūsu masīvs, mums ir elements pie argv nulles,
elements pie argv vienā, un elements pie argv divi.
Nav elements pie argv trīs, un masīva izmēru trīs.
Tātad, tāpēc pēdējā no argv elements vienmēr varat
atrodama argv laukumā kronšteini argc mīnus viens.
>> Tātad pieņemsim, ka lietotājs izpilda mantkārīgs programma kā follows--
ja tie ierakstiet komandrindas dot slash mantkārīgs telpa 1024 kosmosa CS50,
un kāda iemesla dēļ mēs esam jau sagatavoti mūsu mantkārīgs programmu
zināt un strādāt ar šiem komandrindas argumentus.
Mums nav iepriekš, kad mēs strādājām par to, lai mantkārīgs problēmu,
bet pieņemsim, ka mēs esam tagad pārveidota tas tāpēc, ka mēs procesu
komandrindas argumentus kaut kādā veidā.
Šajā gadījumā, argv nulli ir dot slīpsvītra mantkārīgs.
Kas argv viens?
Nu, tas ir 1024, vai ne?
Tas ir 1024, bet šeit ir patiešām svarīgi distinction--
Vai atceraties datu tipu argv?
>> Tā veikalos stīgas, vai ne?
Bet izskatās, ka 1024 ir vesels skaitlis vērtība.
Tas ir ļoti svarīgi, atšķirība, un faktiski
gatavojas kļūt kaut ko, kas jums varētu rasties vēlāk problēmas.
Viss argv ir saglabāts kā virkni.
Tātad argv viena cilvēka saturs ir string viens, nulle, divi, četri,
kas sastāv no šiem četriem burtiem.
Tas ir kā tad, ja lietotājs ievadījis viens, nulle, divi, četri
kā atsevišķus burtus vai rakstzīmes.
Tas nav vesels skaitlis 1024, un tāpēc jūs nevarat tieši
strādāt ar to, sakot int 1000, vai diezgan int x vienāds argv viens mīnus 24.
>> Intuitīvi, jūs varētu domāt par ka kā, OK, arī tas ir 1,024 mīnus 24,
tā x ir vienāda ar 1000.
Bet patiesībā, tas nav gadījums, jo argv viens ir virkne.
Stīgu 1024.
Tagad tur ir funkcija, kas var būt izmanto, lai pārvērstu stīgas uz veseliem skaitļiem.
Es ne sabojāt to jums tagad, bet es esmu pārliecināts, ka Zamyla
būs priecīgs jums pastāstīt par to walkthrough nākotnes problēmu.
Bet jūs varat arī atrast Problēmas like-- attaisnojums
me, funkcijas, kas būtu izdarīt atsaucoties 50,
ja jums iet uz Rokasgrāmatā Jūs varat atrast funkciju, kas
padarīs šo pārveidi par jums.
Bet atkal, jo walkthrough nākotnes problēmas,
Zamyla būs priecīgi pateiks, kādu funkciju
tas ir, ka būs konvertēt string 1024 līdz skaitlim 1024.
>> Labi, tā pārvietojas on.
Mēs esam uz mūsu argv nulli, mēs esam uz argv vienu.
Kas ir argv divās?
CS50.
Ka viens ir iespējams diezgan pašsaprotami.
Kas ir argv trīs?
Nu atkal, mēs īsti nezinām, vai ne?
Mums ir masīva izmēru trīs, tas, cik daudzi elementi lietotājs
drukāti pie komandrindas, Tātad, ja mēs ejam uz argv trīs,
Mēs tagad nepārkāpjot tā robežas mūsu masīva.
Kompilators ļaus mums izdarīt, tur nav intuitīvs problēma ar to,
bet attiecībā uz faktiski Kas notiek notiktu, mēs īsti nezinām.
Tas atkarīgs no tā, kāda ir kas atrodas pie atmiņu, kurā
argv trīs būtu sagaidāms būt.
Un tā mēs varētu beigties kļūst prom skots bezmaksas.
Biežāk nekā nav, jo īpaši, ja jūs strādājat ar argv pretstatā
uz jebkuru citu masīvs tas ir mūsu programmā,
mēs, iespējams, gatavojas ciest segmentācija vaina. Tātad vēlreiz,
Noteikti nedrīkst pārkāpt robežas Sava bloki, īpaši argv,
ņemot vērā tās augsto pakāpi nozīme jūsu programmas.
>> Es esmu Doug Lloyd.
Tas ir CS50.