[Powered by Google Translate] Tommy: Nan videyo sa a, nou pral aprann sou
Redireksyon ak tiyo.
Se konsa, lwen, nou ve yo te lè l sèvi avèk fonksyon renmen printf
pwodiksyon done tèminal la ak fonksyon tankou GetString
yo ki pèmèt itilizatè a bay dizon nou
pwogram lè l sèvi avèk klavye la.
Se pou nou byen vit pran yon gade nan yon pwogram ki vin yon liy nan
enfòmasyon nan men gwoup itilizatè a ak Lè sa a, sorti li.
>> Sou liy 7, n ap pouse itilizatè a pou yon fisèl, ak
Lè sa a, sou liy 8, nou ap enprime l 'tounen soti.
Se pou nou konpile epi kouri pwogram nou an.
Great.
Te fisèl la nou bay répéta tounen
nou nan tèminal la.
Sa te pase konsa paske fonksyon an printf te ekri nan yon
kouran yo rele estanda soti, oswa s-T-d-soti.
Lè yon bagay ki ekri nan Liv stdou, li nan pa default
parèt nan tèminal la.
>> Se konsa, ki nan tout sa byen epi yo bon, men sa ki si, olye pou yo tou senpleman
montre fisèl la, nou te vle pou konsève pou li bay yon dosye?
Pou egzanp, nou ta ka vle sonje ekzakteman ki sa nou
pwogram 'te fè lè nou te ba li yon D' patikilye pita.
Youn nan apwòch ta dwe fè sa nan pwogram C nou an, lè l sèvi avèk
kèk fonksyon espesyal pou ekri nan dosye ke nou pral
wè nan yon lòt videyo.
Menm vin pi fasil, menm si, ta dwe yon jan kanmenm
redireksyon stdou nan yon dosye.
Nan fason sa a, lè printf ekri stdou, sa ki pral
dwe ekri nan yon dosye olye ke
parèt nan tèminal la.
Nou ka fè jis ki pa ajoute yon siy pi gwo-pase, yo pati dèyè
pa yon non dosye, nan yo lòd, ki nou itilize al touye pwogram nou an.
>> Se konsa, olye ke tou senpleman pwomenad. / Redireksyon, nou ka
kouri. / redireksyon, ki te swiv pa yon pi gran pase siy, ki te swiv pa
Fichier, tankou file.txt.
Ann gade pou wè sa k ap pase.
OK.
Remake tan sa a, pa gen anyen te parèt nan tèminal la,
men nou pa te modifye sa ki nan nou an
C pwogram nan tout.
Se pou nou kounye a egzaminen sa ki nan anyè sa a ak ls.
>> Tout dwa.
Nou kounye a gen yon dosye nouvo nan anyè nou rele file.txt,
ki se non an dosye nou apwovizyone lè nou kouri nou an
Redireksyon pwogram nan.
Se pou nou louvri moute file.txt.
Ak isit la, nou ka wè ke stdou a soti nan redireksyon te
ekri nan dosye a yo rele file.txt.
Se konsa, kite a kouri kòmand a anvan ankò, men kap founi bay yon
diferan opinyon tan sa a.
Oke.
Se pou nou pran yon gade nan file.txt kounye a.
>> Nou ka wè isit la ki te dosye a te efase, se konsa nou
D 'orijinal la pa gen ankò.
Si nou olye vle ajoute sa a ranpli, mete nouvo nan
D 'pi ba a sa yo ki deja egziste nan dosye a, nou kapab
sèvi ak de siy pi gwo-pase olye pou yo jis yon sèl.
Ann eseye sa.
Koulye a, si nou louvri file.txt ankò, nou ka wè tou de nou
D 'liy yo.
Nan kèk ka, nou ta ka vle jete tout
pwodiksyon nan pwogram nou an.
Olye de ekri pwodiksyon an nan yon dosye ak Lè sa a, efase
dosye a lè nou ap fè ak li, nou ka ekri yon espesyal
dosye yo rele / Dev / nil.
Lè anyen ki ekri nan Liv / dev/null--
oswa jis dvoul pou kout -
li se otomatikman abandone.
Se konsa, panse a dvoul kòm yon twou nwa pou done ou.
>> Se konsa, kounye a nou te wè ki jan siy ki pi gran pase ka redireksyon
stdou, kite la wè ki jan nou ka redireksyon estanda nan -
oswa s-T-d-an -
analogique nan stdou.
Pandan ke fonksyon renmen printf ekri nou nan kouran an rele
stdou, GetString ak fonksyon sanblab li nan kouran an
rele stden, ki, pa default, se kouran an nan
karaktè tape nan klavye la.
Nou ka redireksyon stden lè l sèvi avèk mwens an pase siy, yo swiv
pa yon fichier.
Koulye a, olye ke pouse itilizatè a pou D 'nan a
tèminal, yon pwogram yo ap louvri dosye a nou espesifye epi sèvi ak
liy li yo menm jan D '.
>> Ann gade pou wè sa k ap pase.
Great.
Te liy nan premye nan file.txt te enprime tèminal la
paske nou ap rele GetString yon fwa.
Si nou te gen yon lòt apèl GetString nan pwogram nou an, nan
ta pwochen liy nan file.txt yo te itilize kòm
D 'ak sa yo ki rele.
Yon fwa ankò, nou pa t 'modifye pwogram C nou an nan tout.
Nou ap sèlman chanje fason nou kouri li.
Epi tou li sonje, nou pa te reyorante resous-stdou tan sa a,
se konsa pwodiksyon an nan pwogram nan te toujou
parèt nan tèminal la.
Nou ka, nan kou, redireksyon tou de stden
ak stdou tankou sa a.
Koulye a, file2.txt gen liy la nan premye file.txt.
>> Se konsa, lè l sèvi avèk sa yo operatè yo, nou te ap kapab li ak
ekri nan fichye tèks.
Koulye a, kite a wè ki jan nou kapab itilize randman de yon pwogram kòm
D 'a nan yon lòt pwogram yo.
Se konsa, isit la nan yon lòt senp C pwogram mwen
te isit la yo rele hello.c.
Kòm ou ka wè, sa a tou senpleman sorti "Hi
la! "nan itilizatè a.
Si m 'vle redireksyon yo itilize kòm opinyon randman de alo -
yon lòt pwogram -
Mwen te kapab premye redireksyon stdou la nan alo nan yon dosye rele
input.txt, lè sa a redireksyon stden a nan redireksyon ak sa yo ki menm
dosye - input.txt.
Se konsa, mwen ka fè. / Alo> input.txt.
Peze Antre al touye sa a.
Ki te swiv pa. / Redireksyon <
input.txt, ak egzekite sa.
Se konsa, nou ka diminye sa yon ti jan ak yon virgules, ki pèmèt
nou kouri de oubyen plis kòmandman sou liy la menm.
Se konsa, mwen ka di,. / Alo> input.txt, virgules,
. / Redireksyon <input.txt.
>> Se konsa, sa a travay, men li toujou santi l ase élégans.
Mwen vle di, nou reyèlman bezwen sa a ranpli tèks entèmedyè ki nan
pa nesesè apre redireksyon kouri?
Chans, nou ka evite sa a ranpli tèks siplemantè lè l sèvi avèk sa ki nan
rele yon pip.
Si mwen di: / alo |.. / Redireksyon, lè sa a stdou a nan
pwogram lan sou bò gòch la -
nan ka sa a, alo -
yo pral itilize kòm opinyon estanda a pou la
pwogram sou bò dwat la.
Nan ka sa a, redireksyon. Se konsa, kite a kouri sa a.
>> Gen nou ale.
Nou ka wè ke yo te randman de alo itilize kòm opinyon an
pou redireksyon.
By stringing kòmandman ansanm lè l sèvi avèk tiyo, nou fòme sa ki nan
rele yon tiyo yo, depi pwodiksyon nou an, ap esansyèlman k ap deplase
atravè yon sekans nan kòmandman.
Sèvi ak tiyo, nou ka fè kèk bagay fre san yo pa bezwen
ekri nenpòt kòd nan tout.
Pou egzanp, kite a di nou vle konnen konbyen dosye yo
andedan nan anyè sa a.
Lè l sèvi avèk yon tiyo, nou ka konbine yo lòd, ki ls ak wc la -
oswa wordcount -
lòd.
Ls ap Sòti chak dosye ki nan anyè a stdou, ak
wc ap di nou ki jan anpil liy yo te ba li via stden.
Se konsa, si nou di ls | wc-l -
kap founi bay L-drapo a wc di l 'bay konte liy -
nou ka wè egzakteman ki jan anpil dosye yo
nan anyè a kounye a.
>> Se konsa, kite a pran yon gade nan yon egzanp plis.
Mwen gen isit la yon dosye rele students.txt,
ak yon lis non.
Sepandan, sa yo non yo pa nan nenpòt lòd li tout, e li sanble
tankou yon non kèk yo ap repete.
Ki sa nou vle se yon lis non inik nan alfabetik
lòd, sove nan yon dosye rele final.txt.
Nou te ka, nan kou, ekri yon pwogram C rive fè sa pou nou.
Men, li la pral jwenn san nesesite
konplèks yo byen vit.
Se pou nou olye itilize tiyo ak kèk bati-an-zouti yo rezoud
pwoblèm sa a.
>> Premye bagay nou bezwen fè se li students.txt nan dosye-a.
Yo lòd, ki chat ap jis fè sa.
Li pral li nan dosye a espesifye ak ekri
sa li yo stdou.
Apre nou te li dosye a tèks, nou pral
vle sòt non yo.
Yo lòd, ki sòt ka okipe sa a pou nou.
Triye ap Sòti liy lan apwovizyone via stden stdou
nan Ranje lòd.
Yo nan lòd yo bay sa ki nan students.txt
stden sòt la, nou te ka sèvi ak yon pip bon konbine chat ak zèl.
Se konsa, mwen ka egzekite chat students.txt | Galeri Foto Triye ak
peze Mete.
Epi, koulye a, nou wè sa ki nan students.txt nan
alfabetik lòd.
>> Se konsa, kite a ajoute yon lòt lòd -
unik, oswa inik -
tiyo nou an.
Kòm ou ta ka devine, unik, lè apwovizyone yon sekans Ranje nan
liy via stden, yo pral Sòti liy ki inik.
Se konsa, kounye a nou gen students.txt chat
| Galeri Foto Triye | unik.
Finalman, nou ka sove randman de tiyo ki nan yon
dosye via chat students.txt | Galeri Foto Triye | unik
> Final.txt.
Se konsa, si nou louvri moute final.txt, nou gen ekzakteman ki sa nou te
kap chèche:
yon lis non inik yo nan lòd alfabetik,
sove nan yon dosye tèks.
By wout la, nou menm tou nou te kapab di sòt <
students.txt | unik> final.txt fè egzakteman
menm bagay la, lè l sèvi avèk chak nan operatè yo nou te wè nan
videyo sa a.
>> Non mwen se Tommy, e sa se CS50.