[Musiikkia] DOUG Lloyd: Hyvä, joten katsotaanpa puhua komentorivin argumentteja. Niin, toistaiseksi aikana melko paljon kaikki ohjelmat ovat luultavasti alkaneet kuten this-- int main mitätön. Olemme keränneet käyttäjä syöttää jos tarvitsemme sitä ohjelmiimme, kuten Mario ohjelma, esimerkiksi, in-ohjelmassa ohjeita. Emme ole tarpeen muuttaa ilmoitus tärkein, koska sen sijaan sisällä tärkein me vain sanoa, voit soittaa sitä saada int. Kuinka suuri haluat pyramidin olla? Tai voit soittaa sitä saada float-- kuinka paljon muutos minun pitäisi lähtö käyttäjä? On toinenkin tapa kuitenkin, ja jos haluamme käyttäjät pystyä tarjoamaan tietoja meidän ohjelma suorituksen sijasta taas ohjelma on käynnissä, hienovarainen ero, mutta joskus erittäin hyödyllinen, Tarvitsemme uudenlaista julistaa tärkein. Emme voi käyttää int main raukeaa, jos haluamme kerätä muita tietoja komentorivin kun käyttäjä käynnistää ohjelman, siten komentorivin argumentteja. Kerätä nämä komentorivin argumentteja käyttäjä, muuttaa ilmoitus tärkein näyttää this-- int tärkein, avoin paren, int argc, pilkku, string argv, hakasulkeita, ja avaa sitten kihara ahdin. Niin mitä se tarkoittaa jo? No, olemme ohimennen kaksi tekijää, tai väitteitä, tai panoksia tärkein. Yksi, kokonaisluku nimeltään argc, ja toinen on mitä? Se joukko jouset, eikö? Näemme, että hakasulku merkintätapa. Se joukko jouset. Se ei ole yksittäinen merkkijono, se joukko jouset. Ja nämä kaksi perustelua, argc ja argv, voit tietää, mitä tietoja käyttäjä on järjestetty komentorivin ja kuinka paljon he tarjotaan komentorivin. Melko hyödyllisiä asioita työskennellä. Argc tarkoittaa argumentti count, ja sinun pitäisi tietää, muuten, että voisi kutsua argc mitä haluat sen. Voit soittaa argv mitä halusi. Nämä ovat vain tavanomaisia ​​nimiä että käytämme them-- argumentti count, ja kuten näemme toisessa, argumenttivektorin, argv. Mutta sinun ei tarvitse soittaa heille argc ja argv jos et halua, mutta perinteisesti, se mitä teemme. Niin joka tapauksessa, argc, väite määrä. Se kokonaisluku-tyyppinen muuttuja ja niin, kuin arvata saattaa, jos meillä on kaksi asiaa että aiomme olla löytää mitä nämä kirjoitetaan ja kuinka paljon tavaraa käyttäjä kirjoittanut, argc on aio kertoa meille, kuinka paljon tavaraa käyttäjä kirjoittanut. Joten se antaa sinulle useita komentorivin argumentteja käyttäjä kirjoitetaan kun ohjelmat on toteutettu. Joten jos ohjelma on ajaa piste slash ahne, ja sisällä oman ahne ohjelmoida päätehtävä on ilmoitus int main int argc, string argv hakasulkeita, sitten argc tällöin on yksi. Huomaa nyt emme laskea kuinka paljon käyttäjä kirjoittanut ohjelman nimen perään. Ohjelman nimi itsessään laskee kuten komentorivin argumentti. Joten piste slash ahne, vuonna Tällöin argc on yksi. Jos käyttäjä kirjoittaa slash ahne 1024 CS50 klo komentorivin, argc tässä tapauksessa olisi kolme. Ja me tiedämme tämän, koska tie että jako jouset havaitaan, onko on tila, tai välilehti, tai jotain niiden välillä. Joten kaikki määrä valkoista tilaa, ns, arvojen kirjoitetaan komentorivin ilmaisee, kuinka monta niitä on. Joten piste slash ahne space 1024 tilaa CS50, argc, tässä tapauksessa, on kolme. Argv on argumentti vektori. Vektori, muuten, on vain toinen sana array, ja tämä on matriisi joka tallentaa jouset. Yksi merkkijono kohden elementti, joka on jouset että käyttäjä todella kirjoitettuna komentorivin kun ohjelmat on toteutettu. Nyt, kuten on asian laita tahansa array, jos Muistan meidän keskustelua paneelit, ensimmäinen osa argv on aina menossa löytyy klo argv hakasulku nolla. Se on ensimmäinen indeksi on argv array. Jotta will-- ja itse asiassa, että tahto aina ohjelman nimi, aina sijaitsee argv hakasulku nolla. Viimeinen osa argv on aina löytynyt klo argv hakasulkeita argc miinus yksi. Näetkö, miksi? Muista kuinka monta elementtiä olemassa tässä array. No, me tiedämme that-- se argc useita tekijöitä. Jos käyttäjä kirjoittaa kolme asiaa komentorivin, argc on kolme. Mutta koska C, kun pyrimme kanssa paneelit, jokainen osa array, tai pikemminkin indeksit array, alkavat nollasta. Jos meillä on kolme elementtiä meidän array, meillä on elementin argv nolla, elementin argv yksi, ja elementin argv kaksi. Ei ole elementti argv kolme, ja taulukon koko kolme. Joten siksi viimeinen elementti argv voi aina osoitteessa argv neliö suluissa argc miinus yksi. Joten Oletetaan käyttäjä valitsee ahne ohjelman follows-- jos he kirjoita komentorivin piste slash ahne space 1024 tilaa CS50, ja jostain syystä olemme jo valmistelleet ahne ohjelma tietää ja työskennellä näiden komentorivin argumentteja. Teimme ei aikaisemmin kun olemme työskennelleet sitä varten ahne ongelma, mutta sanokaamme olemme nyt muutettu niin että teemme prosessi komentorivin argumentteja jollakin tavalla. Tässä tapauksessa argv nolla on piste slash ahne. Mikä argv yksi? No, se on 1024, eikö? Se on 1024, mutta tässä todella tärkeä distinction-- muistatko tietotyyppi argv? Se tallentaa jouset, eikö? Mutta näyttää siltä, ​​1024 on kokonaisluku. Tämä on todella tärkeä ero, ja on itse asiassa tulossa jotain, saattaa kohdata myöhemmin ongelmia. Kaikki argv on tallennetaan merkkijono. Joten argv oman sisältö merkkijono yksi, nolla, kaksi, neljä, joka muodostuu näistä neljästä merkkiä. Aivan kuin käyttäjä kirjoittanut yksi, nolla, kaksi, neljä kuten yksittäisiä kirjaimia tai merkkejä. Se ei ole kokonaisluku 1024, ja niin et voi suoraan työskennellä sen kanssa sanomalla int 1000, tai melko int x vastaa argv yksi miinus 24. Intuitiivisesti, saatat ajatella, että kuten, OK, hyvin se on 1024 miinus 24, joten x on yhtä suuri kuin 1000. Mutta itse asiassa, että ei pidä paikkaansa, koska argv yksi on merkkijono. Merkkijono 1024. Nyt on toiminto, joka voi olla käytetään muuntamaan jousille kokonaislukuja. En pilata sen sinulle nyt, mutta olen varma Zamyla mielellään kertoa sen läpikäynti tulevan ongelma. Mutta voit myös löytää ongelmia like-- tekosyy minulle, toimintoja, jotka tehdä tämän viittaus 50, jos menet pikaopas löydät toiminnon tekee tästä tuloksen. Mutta jälleen kerran, vuonna läpikäynti Tulevaa ongelma, Zamyla mielellään kertoa mitä toiminto se on, joka muuntaa merkkijono 1024 kokonaisluku 1024. Selvä, niin liikkuu. Olemme katettu meidän argv nolla, Selvitimme jo argv yksi. Mitä argv kaksi? CS50. Että yksi on luultavasti melko itsestään selvä. Mitä argv kolme? No jälleen, emme oikeastaan ​​tiedä, eikö? Meillä on joukko koko kolme, näin monia elementtejä käyttäjä kirjoitettuna komentorivin, joten jos menemme argv kolme, olemme nyt liian pitkälle rajat meidän array. Kääntäjä tehkäämme tämä, ei ole intuitiivinen ongelmaa sen kanssa, mutta suhteen todella mitä tapahtuu tapahtua, emme todellakaan tiedä. Se riippuu siitä, mitä on sijaitsee muisti, johon argv kolme voidaan olettaa olevan. Ja jotta voisimme päätyä saada koira veräjästä ilmaiseksi. Todennäköisemmin kuin ei, varsinkin kun olet työskennellyt argv toisin muihin array se on meidän ohjelma, me luultavasti kärsimään segmentointi vika. Niin jälleen, Varo ylittää rajoja teidän paneelit, erityisesti argv, koska sen korkea merkitys ohjelmat. Olen Doug Lloyd. Tämä on CS50.