1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Kòmandman-Liy Agiman] 2 00:00:02,000 --> 00:00:04,000 [Christopher Batèlmi - Inivèsite Harvard] 3 00:00:04,000 --> 00:00:07,000 [Sa a se CS50 - CS50.TV] 4 00:00:07,000 --> 00:00:11,000 Yon karakteristik itil pou yon pwogram se aksepte opinyon itilizatè. 5 00:00:11,000 --> 00:00:15,000 Se konsa, lwen, nou te eksplore kèk fonksyon nan bibliyotèk la CS50 6 00:00:15,000 --> 00:00:18,000 aksepte opinyon itilizatè, tankou "jwenn fisèl," 7 00:00:18,000 --> 00:00:23,000 ki envit itilizatè a, pandan y ap aplikasyon an ap kouri, pou yon fisèl. 8 00:00:23,000 --> 00:00:28,000 >> Sepandan, gen ka kote ou vle bay dizon pwogram ou an 9 00:00:28,000 --> 00:00:30,000 anvan li se aktyèlman kouri. 10 00:00:30,000 --> 00:00:34,000 Fason sa a, ou pa bezwen mande anplis enfòmasyon ki soti nan itilizatè ou 11 00:00:34,000 --> 00:00:38,000 pandan y ap ekzekite yon travay ki senp. 12 00:00:38,000 --> 00:00:42,000 Pran, pou egzanp, MV a oswa lòd mouvman nan UNIX. 13 00:00:42,000 --> 00:00:49,000 Lòd sa a pèmèt itilizatè a pou avanse pou pi yon dosye soti nan yon kote nan yon lòt. 14 00:00:49,000 --> 00:00:55,000 Dapre paj yo manyèl, MV aksepte agiman de liy lòd: 15 00:00:55,000 --> 00:01:00,000 se dosye a lè yon moun ap deplase ak kote a se dosye a ke yo te demenaje ale rete nan. 16 00:01:00,000 --> 00:01:06,000 Se konsa, egzanp sa a te gen yon lòd ak de agiman. 17 00:01:06,000 --> 00:01:14,000 Se konsa, kouman nou di pwogram C nou sèvi ak sa yo agiman bay lòd-liy? 18 00:01:14,000 --> 00:01:20,000 >> Oke, li sanble ke prensipal yo, ke nou itilize nan tout pwogram C, te gen yon sekrè. 19 00:01:20,000 --> 00:01:26,000 Main aksepte de paramèt: arg ak argv. 20 00:01:26,000 --> 00:01:28,000 Ann al sou tèm sa yo. 21 00:01:28,000 --> 00:01:33,000 >> Paramèt a an premye, arg, ki vle di pou konte agiman, 22 00:01:33,000 --> 00:01:36,000 gen yon kalite done nan antye ki pè. 23 00:01:36,000 --> 00:01:42,000 Paramèt la arg gen ki kantite agiman, ki gen ladan yo lòd, ki. 24 00:01:42,000 --> 00:01:47,000 Nan lòd deplase nou an, malgre ke nou sèlman te de prèv parèt, 25 00:01:47,000 --> 00:01:50,000 valè arg a ap 3. 26 00:01:50,000 --> 00:01:56,000 Paramèt, dezyèm lan, argv, ki vle di pou vektè agiman, 27 00:01:56,000 --> 00:02:01,000 se yon etalaj de pwent Char ki pwen a strings. 28 00:02:01,000 --> 00:02:06,000 >> Sa vle di ke chak eleman nan argv, kòmanse nan zewo, 29 00:02:06,000 --> 00:02:09,000 gen yo lòd, ki ak diskisyon. 30 00:02:09,000 --> 00:02:16,000 Pou egzanp, argv [0], ki mwen pral gade nan kòm argv zewo, 31 00:02:16,000 --> 00:02:20,000 ap toujou gen lòd la ki se ke yo te kouri - 32 00:02:20,000 --> 00:02:22,000 nan ka sa a, MV. 33 00:02:22,000 --> 00:02:28,000 argv [1] a pral gen agiman a an premye, file.txt, 34 00:02:28,000 --> 00:02:37,000 ak argv [2] a pral gen agiman, dezyèm lan, ~ / cs50 /. 35 00:02:37,000 --> 00:02:42,000 Agiman an dènye nan argv ap toujou nil. 36 00:02:42,000 --> 00:02:46,000 Se konsa, kite a aplike sa yo agiman bay lòd-liy. 37 00:02:46,000 --> 00:02:53,000 Nan egzèsis anvan, nou mete anile, sa vle di pa gen anyen, kòm paramèt prensipal la. 38 00:02:53,000 --> 00:02:57,000 Sepandan, nan lòd pou nou pou n sèvi ak lòd-liy agiman, 39 00:02:57,000 --> 00:03:12,000 nou bezwen yo retire anile ak kote andedan nan prensipal arg Int, Char * argv []. 40 00:03:12,000 --> 00:03:17,000 Koulye a, gen aksè a eleman a tout antye nan argv yo, ki se agiman ou a, 41 00:03:17,000 --> 00:03:21,000 ou ka senpleman repekte, oswa riban, atravè etalaj la tankou sa a. 42 00:03:21,000 --> 00:03:27,000 Se konsa, andedan nan kò prensipal la, nou pral kontinye ale pi devan epi pou tape yon riban: 43 00:03:27,000 --> 00:03:37,000 pou (Int mwen = 0; mwen 00:03:41,000 >> Nou pa bezwen yon atèl Curly isit la paske nou re sèlman pwomenad yon liy nan kòd 45 00:03:41,000 --> 00:03:44,000 nan kò a nan sa a riban. 46 00:03:44,000 --> 00:03:47,000 Nou pral ale pi devan epi frape tab yon fwa, 47 00:03:47,000 --> 00:03:57,000 Lè sa a, tape printf ("argv [% d], ki reprezante yon valè nonb antye relatif, 48 00:03:57,000 --> 00:04:06,000 se% s, pou fisèl, Lè sa a, pèsonaj la liy nouvo. 49 00:04:06,000 --> 00:04:12,000 Lè sa a, nou bay printf mwen pou iterasyon aktyèl la nan riban an 50 00:04:12,000 --> 00:04:18,000 ak argv [mwen] pou reprezantasyon nan fisèl nan agiman li ye kounye a bay lòd-liy. 51 00:04:18,000 --> 00:04:25,000 Lè nou kouri li ak de agiman, nou pral wè agiman yo ke yo te parèt nan tèminal la. 52 00:04:34,000 --> 00:04:38,000 Byen bonè nou te di ke argv a te fèt yon etalaj de pwent Char. 53 00:04:38,000 --> 00:04:45,000 >> Se konsa, si sa a se ka a, ki jan nou Lè sa a, aksè nan karaktè moun nan chak agiman? 54 00:04:45,000 --> 00:04:51,000 Pou egzanp, sa ki si mwen te vle gade pou yon karaktè espesifik nan agiman an premye? 55 00:04:51,000 --> 00:04:55,000 Oke, repons lan se ke nou bezwen pou aplike pou yon riban enbrike 56 00:04:55,000 --> 00:04:59,000 ki pral Lè sa a, repekte nan chak nan eleman yo nan fisèl la agiman. 57 00:04:59,000 --> 00:05:02,000 Sa a se ki jan ou fè li. 58 00:05:02,000 --> 00:05:10,000 >> Premyèman, nou pwal fè yon kopi example2.c. 59 00:05:10,000 --> 00:05:13,000 Lè sa a, andedan nan premye a pou riban, 60 00:05:13,000 --> 00:05:15,000 nou pral ajoute yon lòt pou riban. 61 00:05:15,000 --> 00:05:28,000 Se konsa, pou (Int j = 0, n = strlèn (argv [mwen]), 62 00:05:28,000 --> 00:05:32,000 ki lè sa a ba nou longè nan agiman aktyèl la, 63 00:05:32,000 --> 00:05:39,000 ; J 00:05:43,000 Nou pral enprime ki kote chak karaktè 65 00:05:43,000 --> 00:05:47,000 andedan nan agiman li ye kounye a lè l sèvi avèk printf. 66 00:05:47,000 --> 00:05:57,000 Se konsa, printf ("argv [% d], ki reprezante endèks la nan agiman aktyèl la, 67 00:05:57,000 --> 00:06:05,000 Lè sa a, [% d] yon lòt fwa ankò, ki reprezante karaktè aktyèl la nan agiman aktyèl la, 68 00:06:05,000 --> 00:06:13,000 se: c%, pou karaktè sa a nan agiman an. 69 00:06:13,000 --> 00:06:20,000 Anfen, nou bay printf ak endèks la nan riban an ekstèn, mwen, 70 00:06:20,000 --> 00:06:22,000 Lè sa a, endèks la nan riban an enteryè. 71 00:06:22,000 --> 00:06:28,000 >> Ak agiman dènye nou yo printf se karaktè aktyèl la soti nan agiman yo bay la 72 00:06:28,000 --> 00:06:31,000 nan liy lan lòd. 73 00:06:31,000 --> 00:06:37,000 Koulye a, paske mwen te itilize fonksyon an fisèl strlèn jwenn longè yon fisèl, 74 00:06:37,000 --> 00:06:43,000 Mwen dwe tou ajoute nan bibliyotèk la string.h nan tèt la nan gen ladan nou an. 75 00:06:43,000 --> 00:06:50,000 Se konsa, fè sa, nou pral moute, ak jis anba stdio.h, nou pwal fè 76 00:06:50,000 --> 00:06:57,000 # Enkli . 77 00:06:57,000 --> 00:07:02,000 >> Se konsa, kite a konpile epi kouri epi yo bay li yon agiman aktyèl. 78 00:07:09,000 --> 00:07:18,000 >> Epi, menm jan nou kapab wè, nou genyen kounye a kote egzak la nan chak Char moun nan agiman an. 79 00:07:18,000 --> 00:07:23,000 Se konsa, sa a, se li. Mwen Christopher Batèlmi, sa a se CS50. 80 00:07:23,000 --> 00:07:26,000 [CS50.TV]