Tip:
Highlight text to annotate it
X
[Powered by Google Translate] TOMMY: Bu video, biz öyrənmək lazımdır
yönlendirme və borular.
İndiyə qədər biz funksiyaları printf kimi istifadə etdik
çıxış terminal məlumat və GetString kimi funksiyaları
istifadəçi bizim üçün giriş təmin etmək üçün imkan
klaviatura istifadə proqramı.
Gəlin tez bir xətt olur ki, bir proqram nəzər
istifadəçi daxil və sonra nəticələr.
>> Line 7-də bir simli istifadəçi isteyen və edirik
sonra on line 8, biz geri çap edirik.
Bizim proqram tərtib run edək.
Böyük.
Biz təmin string geri yankılanacağını edilib
Terminalda bizə.
Bu printf funksiyası yazırdı, çünki bu baş
axın standart səsləndi, və ya s-t-d-out.
Bir şey stdout yazılı, o, u mənim deyil
terminal göstərilir.
>> Belə ki, bütün yaxşı və yaxşı, lakin nə əvəzinə sadəcə, əgər
simli gösteren, biz bir fayl saxlamaq istəyirdi?
Məsələn, biz yadda bilərsiniz dəqiq nə bizim
biz daha sonra xüsusi bir giriş verdik proqram idi.
Bir yanaşma istifadə edərək, bizim C proqram bunu etmək olardı
faylları yazmaq üçün bəzi xüsusi funksiyaları biz lazımdır ki,
başqa video baxın.
Hətta daha asan olsa da, elə olacaq
bir fayl stdout yönlendirme.
Beləliklə, printf stdout yazır zaman, məzmunu olacaq
bir fayl daha çox yazılır
terminal göstərilir.
Biz daha çox-çox işarəsi əlavə yalnız edə bilərsiniz, sonra
bir fayl adı ilə komanda bizim proqram icra edin.
>> Belə ki, daha çox sadəcə həyata. / Yönlendirme, biz bilər
axır. / yönlendirme, sonra, giriş daha çox sonra
file.txt kimi fayl.
Nə görmək edək.
OK.
Bu zaman, heç bir terminal nümayiş olunub edək ki,
lakin biz məzmunu redaktə deyil
Bütün C proqramı.
Indi ls bu directory məzmunu yoxlamaq edək.
>> Bütün hüquqlar.
Biz indi file.txt adlı kataloq yeni bir fayl var
olan bizim qaçmış zaman təchiz fayl adı
Proqram Yönlendirme.
Nin file.txt açmaq edək.
Və burada, biz yönlendirme və stdout həyata olduğunu görə bilərsiniz
file.txt adlı fayl yazılı.
Beləliklə nin yenidən əvvəlki funksiyanı çalıştırın qoy, lakin təmin
müxtəlif giriş bu dəfə.
Okay.
Indi file.txt nəzər salaq.
>> Biz fayl üzerine ki, burada edə bilərsiniz, belə ki, bizim
orijinal giriş artıq yoxdur.
Yerine bu fayl əlavə etmək istəyirsinizsə, yeni qoyaraq
fayl mövcud məzmunu aşağıda giriş, biz
yalnız bir əvəzinə iki böyük-dən əlamətləri istifadə edin.
In ki, cəhd edək.
Yenə file.txt açmaq varsa, biz həm də görə bilərsiniz
daxil satır.
Bəzi hallarda, biz hər hansı bir imtina edə bilərsiniz
bizim proqram çıxdı.
Əksinə bir fayl çıxış yazılı və sonra silmə çox
biz bu Bitirdiğinizde fayl, biz xüsusi bir yaza bilərsiniz
fayl / dev / null çağırıb.
Bir şey / yazılı zaman dev/null--
və ya yalnız qısa devnull -
avtomatik olaraq ləğv olunur.
Belə ki, məlumat üçün qara deşik kimi devnull düşünürəm.
>> Belə ki, indi biz daha çox əlamət yönlendirebilirsiniz necə gördüm
stdout, biz standart yönlendirebilirsiniz necə edək -
ya s-t-d-ci ildə -
stdout və analoq.
Funksiyaları kimi isə printf adlı stream yazmaq
axın oxu stdout, GetString və analoji funksiyaları
stdin deyilən olan, ismarıcları, bu axın edir
simvollar klaviatura ilə yazılmış.
Biz Bürc çox az istifadə stdin yönlendirebilirsiniz, sonra
bir fayl adı ilə.
İndi, daha çox da giriş üçün istifadəçi isteyen
terminal, proqram biz göstərilən fayl açmaq və istifadə edəcək
input kimi satır.
>> Nə görmək edək.
Böyük.
File.txt ilk xətti terminal çap edilmişdir
biz bir GetString zəng etdiyiniz çünki.
Bizim proqram GetString başqa bir zəng var idi varsa,
file.txt növbəti xətti kimi istifadə olunmuşdur ki,
ki zəng daxil.
Yenə biz bütün bizim C proqram redaktə deyil.
Biz yalnız biz run necə dəyişir edirik.
Və həmçinin, biz stdout bu dəfə yönlendirileceksiniz deyil, xatırlayıram
belə proqramı ilə çıxış hələ də
Terminalda göstərilir.
Biz, əlbəttə, stdin həm yönlendirebilirsiniz
bu kimi və stdout.
İndi file2.txt file.txt ilk xətt var.
>> Belə ki, bu operatoru istifadə edərək, biz oxumaq və edə bilərsiniz
mətn faylları yazın.
İndi kimi bir proqram çıxışı istifadə edə bilərsiniz necə in görək
başqa bir proqram daxil.
Belə ki, burada başqa sadə C proqram mən var
burada hello.c çağırıb.
Gördüyünüz kimi, bu, sadəcə Hi "nəticələri
var! "istifadəçi.
- Mən giriş kimi salam çıxdı istifadə yönlendirme istəyirsinizsə
başqa bir proqram -
Mən ilk adlı fayl salam və stdout yönlendirme bilər
input.txt, o eyni yönlendirme və stdin yönlendirme
fayl - input.txt.
Mən bunu edə bilərsiniz. / Salam> input.txt.
Bu icra Enter düyməsini basın.
Izləyir. / Yönlendirme <
input.txt və icra.
Beləliklə, biz imkan verir nöqtəli vergül ilə bu bir az istehlak
bizə eyni xətt üzrə iki və ya daha çox funksiyanı çalıştırmak.
Mən, demək olar. / Salam> input.txt, nöqtəli vergül,
. / > Bu işlər Beləliklə, lakin hələ olduqca sərt hiss edir.
Mən demək, biz, həqiqətən ki, bu vasitəçi mətn fayl lazımdır
çalışır yönlendirme sonra artıq lazımi?
Xoşbəxtlikdən, biz nə istifadə edərək, bu əlavə mətn faylı qarşısını
bir boru çağırıb.
Deyə varsa, / salam |.. / Sonra, bu stdout yönlendirme
sol proqramı -
bu halda, salam -
üçün standart giriş kimi istifadə olunacaq
sağ proqramı.
Bu halda, yönlendirme. Belə ki, bu run imkan verir.
>> Biz də gedin.
Biz daxil olaraq salam çıxdı istifadə edilmişdir ki, edə bilərsiniz
İstiqamətləndirmə üçün.
Birlikdə əmrləri stringing borular istifadə edərək, biz nə yaratmaq
bizim çıxış mahiyyətcə hərəkət edir, çünki boru kəməri adlanır
əmrləri bir ardıcıllıqla vasitəsilə.
Borular istifadə edərək, biz qoymadan bəzi cool stuff edə bilər
hər hansı bir kod yazmaq.
Məsələn, qoy biz nə qədər çox fayl bilmək istəyirsiniz
Bu kataloq daxilində.
Bir boru istifadə edərək, wc ilə ls komanda birləşdirə bilər -
və ya wordcount -
komanda.
Ls stdout üçün kataloq hər bir fayl çıxış edəcək
wc stdin vasitəsilə verilmişdir neçə xətləri bizə olacaq.
Belə ki, biz demək əgər ls | wc-l -
xətləri saymaq demək wc üçün-l bayrağı təchizatı -
Biz tam olaraq necə bir çox faylları görə bilərsiniz
cari kataloq.
>> Belə ki, daha bir misal nəzər salaq.
Mən burada students.txt adlı bir fayl var
adlarının siyahısı ilə.
Lakin, bu adların hər hansı bir sırada bütün deyil və bu, görünür
kimi bir neçə ad təkrarlanır.
Biz istəyirik əlifba unikal adlar siyahısı
final.txt adlı bir fayl qeyd üçün.
Biz, əlbəttə, bizim üçün bunu C proqram yazmaq bilər.
Amma lazımsız olacaq
olduqca tez kompleksi.
Gəlin əvəzinə həll etmək üçün borular və bəzi daxili-tools istifadə
Bu problem.
>> Biz nə etmək lazımdır ilk şey fayl students.txt oxumaq edir.
Pişik komanda yalnız edəcəyik.
Bu müəyyən fayl oxumaq və yazmaq olacaq
stdout onun məzmunu.
Biz mətn faylı oxumaq sonra, biz rəftar
adları sort istəyirəm.
Bu cür komanda bizim üçün bu idarə edə bilərsiniz.
Sort stdout üçün stdin vasitəsilə təchiz xətti çıxış edəcək
sıralanır üçün.
Students.txt məzmunu tədarük üçün
sort in stdin, biz pişik və sort birləşdirəcək boru istifadə edə bilər.
Sort və | Mən pişik students.txt keçirə bilər
Enter düyməsini basın.
İndi biz students.txt məzmunu bax
əlifba sırası.
>> Belə nin başqa komanda əlavə edək -
uniq, və ya unikal -
bizim kəməri.
Siz uniq tapmaq kimi, zaman bir sıralanır ardıcıllığı təmin
stdin vasitəsilə xətləri, unikal xətləri çıxış edəcək.
Belə ki, indi biz pişik students.txt var
| Sort | uniq.
Nəhayət, biz boru kəmərinin çıxış saxlaya bilərsiniz
sort | | uniq pişik students.txt vasitəsilə fayl
> Final.txt.
Biz final.txt açmaq Belə ki, biz idi dəqiq nə
Axtarıram:
əlifba sırası unikal adlar siyahısı,
bir mətn faylı saxlanılır.
Yeri gəlmişkən, biz də ifadə edə bilər sırala <
students.txt | uniq> final.txt etmək məhz
Biz gördük operatorların hər istifadə edərək eyni şey,
bu video.
>> My name Tommy və bu CS50 edir.