1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:03,230 >> SPEAKER: Indtil nu, i programmer, vi har skrevet, har vi erklæret main som 3 00:00:03,230 --> 00:00:04,940 int main tomrum. 4 00:00:04,940 --> 00:00:07,600 Og al den tid, det tomrum har simpelthen været det fremgår, at 5 00:00:07,600 --> 00:00:10,870 Programmet tager ikke kommandolinjeargumenter. 6 00:00:10,870 --> 00:00:14,180 Med andre ord, når en bruger kører et program, kan han eller hun giver kommando 7 00:00:14,180 --> 00:00:18,130 line argumenter ved at skrive ekstra ord eller sætninger efter programmets 8 00:00:18,130 --> 00:00:19,420 navn ved prompten. 9 00:00:19,420 --> 00:00:22,980 >> Tja, hvis du vil have dit program til tage kommandolinjeargumenter, en eller 10 00:00:22,980 --> 00:00:26,960 flere sådanne ord har vi brug for at erstatte ugyldig med et par argumenter. 11 00:00:26,960 --> 00:00:28,630 Så lad os gøre det. 12 00:00:28,630 --> 00:00:32,170 Medtag CS50.h. 13 00:00:32,170 --> 00:00:35,760 Medtag standard io.h. 14 00:00:35,760 --> 00:00:40,830 Int, main, og nu i stedet for ugyldig, Jeg har tænkt mig at angive en int kaldet 15 00:00:40,830 --> 00:00:45,800 argc, og en række strings kaldet argv. 16 00:00:45,800 --> 00:00:48,240 >> Nu argc og argv er simpelthen konventioner. 17 00:00:48,240 --> 00:00:50,530 Vi kunne have kalder disse argumenter de fleste noget, vi ønsker. 18 00:00:50,530 --> 00:00:54,050 Men hvad der er vigtigt, er, at argc er en int, fordi per definition, er det 19 00:00:54,050 --> 00:00:57,810 kommer til at indeholde argument tæller, antallet af ord i alt at 20 00:00:57,810 --> 00:00:59,830 brugeren har indtastet på hans eller hendes prompt. 21 00:00:59,830 --> 00:01:04,310 >> Argv, i mellemtiden, vektor argument er vil faktisk være et array opbevaring 22 00:01:04,310 --> 00:01:08,460 alle de ord, som brugeren har skrevet på hans eller hendes prompt. 23 00:01:08,460 --> 00:01:10,920 Lad os gå videre til at gøre noget nu med en eller flere af disse 24 00:01:10,920 --> 00:01:12,090 kommandolinjeargumenter. 25 00:01:12,090 --> 00:01:16,440 I særdeleshed, lad os gå videre og udskrive uanset ord brugeren typer 26 00:01:16,440 --> 00:01:20,380 efter programmets navn ved prompten. 27 00:01:20,380 --> 00:01:26,940 >> Åbneparentes, lukkede beslag, print f, procent s, backslash n, komma. 28 00:01:26,940 --> 00:01:30,930 Og nu har jeg brug for at fortælle print f hvad værdi til at sætte ind i denne pladsholder. 29 00:01:30,930 --> 00:01:35,030 Jeg vil have det første ord, som brugeren har skrevet efter programmets navn. 30 00:01:35,030 --> 00:01:39,550 Og så jeg har tænkt mig at specificere argv beslag 1, lukket 31 00:01:39,550 --> 00:01:41,250 parentes, semikolon. 32 00:01:41,250 --> 00:01:43,710 >> Nu, hvorfor beslag 1 og ikke beslag 0? 33 00:01:43,710 --> 00:01:47,410 Tja, det viser sig, gemmes automatisk i argv 0 kommer til at være den 34 00:01:47,410 --> 00:01:49,040 programmets faktiske navn. 35 00:01:49,040 --> 00:01:52,600 Så det første ord, brugeren skriver efter programmets navn er, ved 36 00:01:52,600 --> 00:01:55,410 konvention, kommer til at være lagret i argv 1. 37 00:01:55,410 --> 00:01:58,800 >> Lad os nu kompilere og køre dette program. 38 00:01:58,800 --> 00:02:08,080 Gør argv 0 dot skråstreg argv 0, og nu et ord som hej, skal du indtaste. 39 00:02:08,080 --> 00:02:09,330 Og der har vi det, hej. 40 00:02:09,330 --> 00:02:11,332