[Powered by Google Translate] [Kòmandman-Liy Agiman]
[Christopher Batèlmi - Inivèsite Harvard]
[Sa a se CS50 - CS50.TV]
Yon karakteristik itil pou yon pwogram se aksepte opinyon itilizatè.
Se konsa, lwen, nou te eksplore kèk fonksyon nan bibliyotèk la CS50
aksepte opinyon itilizatè, tankou "jwenn fisèl,"
ki envit itilizatè a, pandan y ap aplikasyon an ap kouri, pou yon fisèl.
>> Sepandan, gen ka kote ou vle bay dizon pwogram ou an
anvan li se aktyèlman kouri.
Fason sa a, ou pa bezwen mande anplis enfòmasyon ki soti nan itilizatè ou
pandan y ap ekzekite yon travay ki senp.
Pran, pou egzanp, MV a oswa lòd mouvman nan UNIX.
Lòd sa a pèmèt itilizatè a pou avanse pou pi yon dosye soti nan yon kote nan yon lòt.
Dapre paj yo manyèl, MV aksepte agiman de liy lòd:
se dosye a lè yon moun ap deplase ak kote a se dosye a ke yo te demenaje ale rete nan.
Se konsa, egzanp sa a te gen yon lòd ak de agiman.
Se konsa, kouman nou di pwogram C nou sèvi ak sa yo agiman bay lòd-liy?
>> Oke, li sanble ke prensipal yo, ke nou itilize nan tout pwogram C, te gen yon sekrè.
Main aksepte de paramèt: arg ak argv.
Ann al sou tèm sa yo.
>> Paramèt a an premye, arg, ki vle di pou konte agiman,
gen yon kalite done nan antye ki pè.
Paramèt la arg gen ki kantite agiman, ki gen ladan yo lòd, ki.
Nan lòd deplase nou an, malgre ke nou sèlman te de prèv parèt,
valè arg a ap 3.
Paramèt, dezyèm lan, argv, ki vle di pou vektè agiman,
se yon etalaj de pwent Char ki pwen a strings.
>> Sa vle di ke chak eleman nan argv, kòmanse nan zewo,
gen yo lòd, ki ak diskisyon.
Pou egzanp, argv [0], ki mwen pral gade nan kòm argv zewo,
ap toujou gen lòd la ki se ke yo te kouri -
nan ka sa a, MV.
argv [1] a pral gen agiman a an premye, file.txt,
ak argv [2] a pral gen agiman, dezyèm lan, ~ / cs50 /.
Agiman an dènye nan argv ap toujou nil.
Se konsa, kite a aplike sa yo agiman bay lòd-liy.
Nan egzèsis anvan, nou mete anile, sa vle di pa gen anyen, kòm paramèt prensipal la.
Sepandan, nan lòd pou nou pou n sèvi ak lòd-liy agiman,
nou bezwen yo retire anile ak kote andedan nan prensipal arg Int, Char * argv [].
Koulye a, gen aksè a eleman a tout antye nan argv yo, ki se agiman ou a,
ou ka senpleman repekte, oswa riban, atravè etalaj la tankou sa a.
Se konsa, andedan nan kò prensipal la, nou pral kontinye ale pi devan epi pou tape yon riban:
pou (Int mwen = 0; mwen <arg; mwen + +).
>> Nou pa bezwen yon atèl Curly isit la paske nou re sèlman pwomenad yon liy nan kòd
nan kò a nan sa a riban.
Nou pral ale pi devan epi frape tab yon fwa,
Lè sa a, tape printf ("argv [% d], ki reprezante yon valè nonb antye relatif,
se% s, pou fisèl, Lè sa a, pèsonaj la liy nouvo.
Lè sa a, nou bay printf mwen pou iterasyon aktyèl la nan riban an
ak argv [mwen] pou reprezantasyon nan fisèl nan agiman li ye kounye a bay lòd-liy.
Lè nou kouri li ak de agiman, nou pral wè agiman yo ke yo te parèt nan tèminal la.
Byen bonè nou te di ke argv a te fèt yon etalaj de pwent Char.
>> Se konsa, si sa a se ka a, ki jan nou Lè sa a, aksè nan karaktè moun nan chak agiman?
Pou egzanp, sa ki si mwen te vle gade pou yon karaktè espesifik nan agiman an premye?
Oke, repons lan se ke nou bezwen pou aplike pou yon riban enbrike
ki pral Lè sa a, repekte nan chak nan eleman yo nan fisèl la agiman.
Sa a se ki jan ou fè li.
>> Premyèman, nou pwal fè yon kopi example2.c.
Lè sa a, andedan nan premye a pou riban,
nou pral ajoute yon lòt pou riban.
Se konsa, pou (Int j = 0, n = strlèn (argv [mwen]),
ki lè sa a ba nou longè nan agiman aktyèl la,
; J <n; j + +)
Nou pral enprime ki kote chak karaktè
andedan nan agiman li ye kounye a lè l sèvi avèk printf.
Se konsa, printf ("argv [% d], ki reprezante endèks la nan agiman aktyèl la,
Lè sa a, [% d] yon lòt fwa ankò, ki reprezante karaktè aktyèl la nan agiman aktyèl la,
se: c%, pou karaktè sa a nan agiman an.
Anfen, nou bay printf ak endèks la nan riban an ekstèn, mwen,
Lè sa a, endèks la nan riban an enteryè.
>> Ak agiman dènye nou yo printf se karaktè aktyèl la soti nan agiman yo bay la
nan liy lan lòd.
Koulye a, paske mwen te itilize fonksyon an fisèl strlèn jwenn longè yon fisèl,
Mwen dwe tou ajoute nan bibliyotèk la string.h nan tèt la nan gen ladan nou an.
Se konsa, fè sa, nou pral moute, ak jis anba stdio.h, nou pwal fè
# Enkli .
>> Se konsa, kite a konpile epi kouri epi yo bay li yon agiman aktyèl.
>> Epi, menm jan nou kapab wè, nou genyen kounye a kote egzak la nan chak Char moun nan agiman an.
Se konsa, sa a, se li. Mwen Christopher Batèlmi, sa a se CS50.
[CS50.TV]