[Powered by Google Translate] TOMMY: В това видео, ние ще научите за пренасочване на средства и тръби. Досега сме използвали функции като ФОРМАТ извеждане на данни към терминала и функции като GetString да позволи на потребителя да дадат своя принос към нашия програма с помощта на клавиатурата. Нека бързо да разгледаме програма, която получава линия на вход от потребителя и след това да подава. На линия 7, подканване на потребителя за низ, и след това по линия 8, ние го отпечатване обратно. Нека компилирате и изпълнявате нашата програма. Велики. Низ ние се връщат обратно ни на терминала. Това се случи, защото ФОРМАТ функция пише на поток наречен стандартен, или S-т-г-. Когато нещо е написано на стандартния изход, това е по подразбиране показва от терминала. Така че това е много добре, но какво, ако вместо просто показване на низ, ние искахме да го запишете във файл? Например, ние може да искам да си спомням какво точно ни програмата направи, когато го даде дадена суровина, по-късно. Един подход би бил да се направи това в нашата програма C, като се използва някои специални функции за писане за файлове, които ние ще в друг видеоклип. Даже по-лесно, все пак, би било по някакъв начин да пренасочване на стандартния изход към файл. По този начин, когато ФОРМАТ пише на стандартния изход, съдържанието ще бъдат написани на файла, вместо показва от терминала. Ние можем да направим точно това, като се добави по-голяма, отколкото знак, последван от името на файла, за да командата ние използваме за изпълнение на нашата програма. Така че, вместо просто да изпълнява. / Пренасочващ, можем да бягай. / пренасочване, последвано от по-голяма от знака, следвани от име, като file.txt. Нека видим какво ще стане. OK. Забележете, че този път нищо не се показва в рамките на съответния терминал, но не са променили съдържанието на нашия С програмата изобщо. Нека сега разгледаме съдържанието на тази директория с LS. Добре. Сега имаме нов файл в нашия каталог, наречен file.txt , което е името на файла, ние доставени, когато ние се завтече Пренасочване на програмата. Нека отворим file.txt. И тук, можем да видим, че стандартния изход от пренасочване писмено на файл, наречен file.txt. Така че нека да стартирате отново предишната команда, но доставя вида на входния сигнал и този път. Добре. Нека да погледнем в file.txt сега. Ние можем да видим, че файлът е презаписана, така че нашата първоначалното въвеждане не е вече там. Ако вместо това искате да добавите към този файл, поставяйки нов мощност под съществуващите съдържанието на файла, ние можем да използвате две по-голяма от знаци, а не само един. Нека да опитаме. Сега, ако отворим отново file.txt, можем да видим и на двама ни входни линии. В някои случаи, може да искате да изхвърлете изхода на нашата програма. Вместо писането на изхода към файл и след това изтриване файла, когато сме готови с нея, можем да напишем специални файл, наречен / Dev / нула. Когато нещо е писано / dev/null-- или просто devnull за кратко той автоматично се изхвърли. Така че мисля devnull като черна дупка за вашите данни. Така че сега сме виждали как може да пренасочи по-голяма от знак стандартния изход, нека да видим как можем да пренасочи стандартния - или S-т-г-в аналог на стандартния изход. Докато функции като ФОРМАТ пишете нарича поток стандартния изход, GetString и други подобни функции, които се четат от потока нарича стандартния вход, който, по подразбиране, е поток от героите да пишат с клавиатурата. Ние можем да пренасочи стандартния вход с помощта на по-малко от знак, последван име на файл. Сега, вместо да накара потребителя за вход на терминал, програмата ще отвори файла е посочено и използвайте линиите си за вход. Нека видим какво ще стане. Велики. На първия ред на file.txt е отпечатан до терминала защото ние се обаждате GetString веднъж. Ако имахме друг разговор, за да GetString в нашата програма, следващия ред на file.txt би са били използвани като въвеждане на този призив. Отново, ние не са модифицирали С програмата ни най-малко. Ние само се променят, как можем да го стартирате. И също така не забравяйте, че не сме пренасочва стандартния изход този път, така че на изхода на програмата все още е показва на терминала. Ние можем, разбира се, да пренасочи както стандартния вход и стандартния изход по този начин. Сега, file2.txt съдържа първата линия на file.txt. Така че, използването на тези оператори, ние сме били в състояние да четат и пиша от текстови файлове. Сега, нека да видим как можем да използваме изхода на една програма приноса към друга програма. Така че тук е още една проста програма на С тук се наричат ​​hello.c. Както можете да видите, това просто извежда "Здравей ! "на потребителя. Ако искам пренасочи към използват като вход на изхода на здравей - друга програма - Първо да пренасочи стандартния изход на здравей файл, наречен input.txt, а след това пренасочване на стандартния вход на пренасочи към същата файл - input.txt. Така че мога да направя. / Здравей> input.txt. Натиснете Enter, за да се изпълни това. Следван от / пренасочващ < input.txt и изпълнение. Така че ние можем да скъси това малко с точка и запетая, което позволява нас да пуснем две или повече команди на една и съща линия. Затова мога да кажа, / здравей> input.txt, точка и запетая, / Пренасочващ Final.txt. Така че, ако се отворим final.txt, ние имаме точно това, което са търсите за: списък на уникални имена по азбучен ред, записва в текстов файл. Между другото, ние също може да са вид < students.txt | Uniq> final.txt да се направи точно едно и също нещо, като се използва всеки от операторите, които сме виждали в това видео. Моето име е Томи, и това е CS50.