1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Kmand-Line argumenti] 2 00:00:02,000 --> 00:00:04,000 [Christopher Bartholomew - Università ta 'Harvard] 3 00:00:04,000 --> 00:00:07,000 [Dan huwa CS50 - CS50.TV] 4 00:00:07,000 --> 00:00:11,000 Karatteristika utli għal programm huwa li jaċċetta input utent. 5 00:00:11,000 --> 00:00:15,000 S'issa, aħna ve esplorati xi funzjonijiet fi ħdan l-librerija CS50 6 00:00:15,000 --> 00:00:18,000 li taċċetta input utent, bħal "nikseb string," 7 00:00:18,000 --> 00:00:23,000 li tinkoraġġixxi l-utent, filwaqt li l-applikazzjoni tkun qed taħdem, għal string. 8 00:00:23,000 --> 00:00:28,000 >> Madankollu, hemm każijiet fejn inti tixtieq li jipprovdu input program tiegħek 9 00:00:28,000 --> 00:00:30,000 qabel ma attwalment taħdem. 10 00:00:30,000 --> 00:00:34,000 Dan il-mod, inti m'għandekx bżonn li tintalab informazzjoni addizzjonali mill-utent tiegħek 11 00:00:34,000 --> 00:00:38,000 filwaqt li jesegwixxi xogħol sempliċi. 12 00:00:38,000 --> 00:00:42,000 Ħu, per eżempju, l-mv jew kmand jiċċaqalqu fil UNIX. 13 00:00:42,000 --> 00:00:49,000 Dan il-kmand jippermetti lill-utent biex jimxu fajl minn post għall-ieħor. 14 00:00:49,000 --> 00:00:55,000 Skond il-paġni manwali, mv taċċetta żewġ argumenti kmand tal-linja: 15 00:00:55,000 --> 00:01:00,000 il-fajl li qed jiġi mċaqlaq u l-post l-fajl qiegħed jiġi mċaqlaq għal. 16 00:01:00,000 --> 00:01:06,000 Allura dan l-eżempju għandu kmand ma 'żewġ argumenti. 17 00:01:06,000 --> 00:01:14,000 Allura kif nistgħu tell-programm C tagħna biex tutilizza dawn l-argumenti kmand tal-linja? 18 00:01:14,000 --> 00:01:20,000 >> Ukoll, jirriżulta li prinċipali, li nużaw fil-programmi Ċ, għandha sigriet. 19 00:01:20,000 --> 00:01:26,000 Main taċċetta żewġ parametri: argc u ARGV. 20 00:01:26,000 --> 00:01:28,000 Ejja jmorru fuq dawn it-termini. 21 00:01:28,000 --> 00:01:33,000 >> Il-parametru 1, argc, li stands għall-għadd argument, 22 00:01:33,000 --> 00:01:36,000 għandu tip ta 'dejta ta' numru sħiħ. 23 00:01:36,000 --> 00:01:42,000 Il-parametru argc fih in-numru ta 'argumenti, inkluż il-kmand. 24 00:01:42,000 --> 00:01:47,000 Fl-kmand jiċċaqalqu tagħna, għalkemm aħna biss għandna żewġ argumenti murija, 25 00:01:47,000 --> 00:01:50,000 valur argc se jkun 3. 26 00:01:50,000 --> 00:01:56,000 It-tieni parametru, ARGV, li stands għall vector argument, 27 00:01:56,000 --> 00:02:01,000 huwa firxa ta 'indikaturi char li jindikaw kordi. 28 00:02:01,000 --> 00:02:06,000 >> Dan ifisser li kull element fil ARGV, li jibda minn żero, 29 00:02:06,000 --> 00:02:09,000 fih il-kmand u l-argumenti. 30 00:02:09,000 --> 00:02:16,000 Per eżempju, ARGV [0], li jien ser nirreferi għalih bħala ARGV żero, 31 00:02:16,000 --> 00:02:20,000 dejjem se jkun fiha l-kmand li qed titmexxa - 32 00:02:20,000 --> 00:02:22,000 f'dan il-każ, mv. 33 00:02:22,000 --> 00:02:28,000 ARGV [1] għandu jkun fiha l-argument, file.txt 1, 34 00:02:28,000 --> 00:02:37,000 u ARGV [2] għandu jkun fiha t-tieni argument, ~ / cs50 /. 35 00:02:37,000 --> 00:02:42,000 L-aħħar argument tal ARGV dejjem se jkun null. 36 00:02:42,000 --> 00:02:46,000 Mela ejja jimplimentaw dawn l-argumenti kmand tal-linja. 37 00:02:46,000 --> 00:02:53,000 Fil eżerċizzji preċedenti, aħna mqiegħda null, jiġifieri xejn, bħala parametru ewlieni tal-. 38 00:02:53,000 --> 00:02:57,000 Madankollu, sabiex għalina biex jużaw kmand tal-linja l-argumenti, 39 00:02:57,000 --> 00:03:12,000 għandna bżonn li jitneħħew null u l-post ġewwa tal int prinċipali argc, char * ARGV []. 40 00:03:12,000 --> 00:03:17,000 Issa, għall-aċċess għall-element kollu mill ARGV, li huma argumenti tiegħek, 41 00:03:17,000 --> 00:03:21,000 inti tista 'sempliċement jtenni, jew loop, permezz tal-firxa bħal din. 42 00:03:21,000 --> 00:03:27,000 Għalhekk, ġewwa ta 'korp ewlieni, aħna qed tmur biex jimxi' l quddiem u t-tip ta 'għal loop: 43 00:03:27,000 --> 00:03:37,000 għal (i int = 0; i 00:03:41,000 >> M'għandniex bżonn Brace kaboċċi hawnhekk għaliex aħna qed biss eżekuzzjoni linja waħda tal-kodiċi 45 00:03:41,000 --> 00:03:44,000 fi ħdan il-korp ta 'dan loop. 46 00:03:44,000 --> 00:03:47,000 Aħna ser imorru quddiem u hit tab darba, 47 00:03:47,000 --> 00:03:57,000 imbagħad it-tip printf ("ARGV [% d], li jirrappreżentaw valur sħiħ, 48 00:03:57,000 --> 00:04:06,000 huwa% s, għal string, allura l-karattru linja ġdida. 49 00:04:06,000 --> 00:04:12,000 Imbagħad aħna nipprovdu printf i għall-iterazzjoni attwali tal-linja 50 00:04:12,000 --> 00:04:18,000 u ARGV [i] għar-rappreżentazzjoni sekwenza tal-kurrent kmand tal-linja argument. 51 00:04:18,000 --> 00:04:25,000 Meta aħna run ma 'żewġ argumenti, aħna ser tara l-argumenti li qed jintwerew fit-terminal. 52 00:04:34,000 --> 00:04:38,000 Earlier għidna li l-ARGV miżmuma firxa ta 'indikaturi char. 53 00:04:38,000 --> 00:04:45,000 >> Allura, jekk dan huwa l-każ, kif nistgħu mbagħad ikollhom aċċess għal karattri individwali f'kull argument? 54 00:04:45,000 --> 00:04:51,000 Per eżempju, dak li jekk jien ridt li tfittex għal karattru speċifiku fl-ewwel argument? 55 00:04:51,000 --> 00:04:55,000 Ukoll, it-tweġiba hija li għandna bżonn li tapplika loop nested 56 00:04:55,000 --> 00:04:59,000 li mbagħad jtenni permezz kull wieħed mill-elementi fil-sekwenza argument. 57 00:04:59,000 --> 00:05:02,000 Din hija kif inti tagħmel dan. 58 00:05:02,000 --> 00:05:10,000 >> L-ewwel, aħna qed tmur biex tagħmel kopja ta 'example2.c. 59 00:05:10,000 --> 00:05:13,000 Imbagħad, ġewwa tal-ewwel linja, 60 00:05:13,000 --> 00:05:15,000 aħna qed tmur biex iżidu addizzjonali għall loop. 61 00:05:15,000 --> 00:05:28,000 Allura għal (j int = 0, n = strlen (ARGV [i]), 62 00:05:28,000 --> 00:05:32,000 li mbagħad jagħtina t-tul tal-argument preżenti, 63 00:05:32,000 --> 00:05:39,000 ; J 00:05:43,000 Aħna ser jistampaw il-post ta 'kull karattru 65 00:05:43,000 --> 00:05:47,000 ġewwa tal-argument attwali bl-użu printf. 66 00:05:47,000 --> 00:05:57,000 Allura, printf ("ARGV [% d], li jirrappreżenta l-indiċi ta 'l-argument preżenti, 67 00:05:57,000 --> 00:06:05,000 imbagħad [% d] għal darb'oħra, biex jirrappreżentaw il-karattru attwali tal-argument preżenti, 68 00:06:05,000 --> 00:06:13,000 huwa: c%, għall-karattru attwali fil-argument. 69 00:06:13,000 --> 00:06:20,000 Fl-aħħar nett, aħna nipprovdu printf mal-indiċi tal-linja ta 'barra, i, 70 00:06:20,000 --> 00:06:22,000 allura l-indiċi tal-linja ta 'ġewwa. 71 00:06:22,000 --> 00:06:28,000 >> U l-aħħar argument tagħna li printf huwa l-karattru attwali mill-argument pprovduta 72 00:06:28,000 --> 00:06:31,000 fil-linja tal-kmand. 73 00:06:31,000 --> 00:06:37,000 Issa, minħabba I użat il-funzjoni sekwenza strlen biex jiksbu l-tul ta 'spag, 74 00:06:37,000 --> 00:06:43,000 I għandhom ukoll iżidu l-librerija string.h għall-quċċata tal tinkludi tagħna. 75 00:06:43,000 --> 00:06:50,000 Allura, biex tagħmel dan, aħna ser jitla ', u biss taħt stdio.h, aħna qed tmur biex tagħmel 76 00:06:50,000 --> 00:06:57,000 # Jinkludu . 77 00:06:57,000 --> 00:07:02,000 >> Allura, ejja jikkompilaw u run u jipprovdiha argument attwali. 78 00:07:09,000 --> 00:07:18,000 >> U, kif nistgħu naraw, issa għandna l-post eżatt ta 'kull char individwali fil-argument. 79 00:07:18,000 --> 00:07:23,000 Allura dak li. Jien Christopher Bartholomew; dan huwa CS50. 80 00:07:23,000 --> 00:07:26,000 [CS50.TV]