[Powered by Google Translate] [Ordú-Líne Argóintí]
[Christopher Bartholomew - Ollscoil Harvard]
[Is é seo an CS50 - CS50.TV]
Gné úsáideach le haghaidh clár chun glacadh le hionchur úsáideora.
Go dtí seo, tá muid iniúchadh ar roinnt feidhmeanna laistigh den leabharlann CS50
glacadh le hionchur úsáideora, mar shampla "a fháil téad,"
a spreagann an t-úsáideoir, cé go bhfuil an t-iarratas ag rith, ar teaghrán.
>> Mar sin féin, tá cásanna ann nuair is mian leat a chur ar fáil d'ionchur clár
sula ag rith sé i ndáiríre.
Sa tslí seo, ní gá duit a iarraidh faisnéis bhreise ó do úsáideora
fad is tasc simplí.
Tóg, mar shampla, an mv nó ordú bogadh i UNIX.
Ceadaíonn an ordú an t-úsáideoir a bhogadh comhad ó áit amháin go ceann eile.
Dar leis an leathanaigh lámhleabhar, glacann mv dhá argóintí:
an comhad a á n-aistriú agus an suíomh an comhad á n-aistriú go.
Mar sin, tá an sampla a ordú le dhá argóintí.
Mar sin, conas is féidir linn a insint ár gcuid C gclár úsáid a bhaint as na hargóintí orduithe-líne?
>> Bhuel, casadh sé amach go bhfuil is mó, a úsáid againn i ngach clár C, a rún.
Main Glacann dhá paraiméadair: argc agus argv.
A ligean ar dul thar na téarmaí seo.
>> An paraiméadar chéad, argc, a sheasann do líon argóint,
Tá cineál sonraí slánuimhir.
Tá paraiméadar argc líon na n-argóintí, lena n-áirítear an t-ordú.
I ár n-ordú bogadh, cé go againn ach tá dhá argóint ar taispeáint,
Beidh luach argc ar 3.
An paraiméadar dara argv, a sheasann do veicteoir argóint,
Tá sraith de leideanna ruabhric go pointe teaghráin.
>> Ciallaíonn sé seo go gach eilimint i argv, ag tosú ó nialas,
tá ceannas agus argóintí.
Mar shampla, argv [0], a beidh mé tagairt a dhéanamh mar argv náid,
Beidh go bhfuil i gcónaí an t-ordú atá á reáchtáil -
sa chás seo, mv.
argv [1] go bhfuil an argóint, ar an gcéad file.txt,
agus argv [2] a bheidh ann an argóint dara, ~ / cs50 /.
Beidh an argóint deiridh de argv i gcónaí a bheith ar neamhní.
Mar sin a ligean i bhfeidhm ar na hargóintí orduithe-líne.
I cleachtaí roimhe seo, chuireamar ar neamhní, rud a chiallaíonn rud ar bith, mar paraiméadar an phríomhchonraitheora.
Mar sin féin, d'fhonn dúinn chun úsáid a bhaint as ordú-líne argóintí,
ní mór dúinn a bhaint neamhní agus ar siúl taobh istigh de phríomh-slánuimhir argc, ruabhric * argv [].
Anois, rochtain a fháil ar an ghné ar fad ó argv, a bhfuil do argóintí,
is féidir leat abair leo go simplí, nó lúb, tríd an eagar mar seo.
Mar sin, taobh istigh de chuid an chomhlachta phríomhchonraitheora, táimid ag dul chun dul ar aghaidh agus cineál le haghaidh lúb:
do (slánuimhir i = 0; i <argc; i + +).
>> Ní gá dúinn a brace curly anseo toisc go bhfuil muid ag forghníomhaitheach ach líne amháin de chód
laistigh den chomhlacht an lúb.
Beidh muid dul ar aghaidh agus tab bhuail aon uair amháin,
ansin cineál printf ("argv [% d], chun ionadaíocht a dhéanamh ar luach slánuimhir,
Is é% s, do téad, ansin an carachtar líne nua.
Ansin a chuirimid ar fáil printf i do leagan reatha na lúibe
agus argv [i] le haghaidh ionadaíochta teaghrán an argóint atá ann faoi láthair ordú-líne.
Nuair a rith sé le dhá argóint, beidh orainn a fheiceáil ar na hargóintí a bheith ar taispeáint i gcríochfort.
Níos luaithe dúirt muid go raibh an argv le sraith de leideanna ruabhreac.
>> Mar sin, má tá sé seo an cás, conas is féidir linn rochtain a fháil ansin carachtair aonair i ngach argóint?
Mar shampla, cad má bhí mé a chuardach le haghaidh cháilíocht shonrach sa chéad argóint?
Bhuel, is é an freagra gur gá dúinn a chur i bhfeidhm lúb neadaithe
a iterate ansin trí gach ceann de na gnéithe ar an argóint.
Tá sé seo conas a dhéanann tú é.
>> Gcéad dul síos, tá muid ag dul a dhéanamh cóip den example2.c.
Ansin, taobh istigh de na chéad lúb,
táimid ag dul a chur ar breise le haghaidh lúb.
Mar sin, le haghaidh (slánuimhir j = 0, n = strlen (argv [i]),
a thugann ansin dúinn fad an argóint atá ann faoi láthair,
= J <n = j + +)
Táimid ag dul i gcló suíomh gach carachtar
taobh istigh den argóint atá ann faoi láthair trí úsáid a bhaint printf.
Mar sin, printf ("argv [% d], chun ionadaíocht a dhéanamh an t-innéacs ar an argóint atá ann faoi láthair,
ansin [% d] arís, chun ionadaíocht a dhéanamh ar charachtar reatha an argóint atá ann faoi láthair,
is é sin: c%, le haghaidh an carachtar atá ann faoi láthair san argóint.
Ar deireadh, a chuirimid ar fáil printf leis an t-innéacs na lúibe seachtrach, i,
ansin an t-innéacs ar an lúb istigh.
>> Agus ár argóint deiridh a printf an carachtar iarbhír as an argóint ar fáil
ag an líne orduithe.
Anois, mar gheall ar úsáid mé an strlen feidhm teaghrán a fháil ar an fad téad,
Ní mór liom a chur freisin ar an leabharlann string.h go dtí an barr ar ár n-áirítear.
Mar sin, chun é sin a dhéanamh, beidh muid ag dul suas, agus díreach faoi stdio.h, táimid ag dul a dhéanamh
# I measc .
>> Mar sin, a ligean ar a thiomsú agus a reáchtáil agus a chur ar fáil argóint iarbhír é.
>> Agus, mar is féidir linn a fheiceáil, ní mór dúinn anois ar an suíomh beacht gach ruabhric aonair san argóint.
Mar sin tá go bhfuil sé. Tá mé Christopher Bartholomew; tá sé seo CS50.
[CS50.TV]