[Powered by Google Translate] TOMMY: У гэтым відэа мы даведваемся пра перанакіраванне і труб. Да гэтага часу мы выкарыстоўвалі такія функцыі, як Printf да выснову дадзеных на тэрмінал і функцый, такіх як GetString дазваляе карыстачу ўносіць ўклад у наш праграмы з дапамогай клавіятуры. Давайце хутка зірнем на праграму, якая атрымлівае лініі увод ад карыстальніка, а затым выводзіць яго. У радку 7, мы з дапамогай якога карыстальнік радок, а Затым у радку 8, мы раздрукаваць яго назад. Давайце скампіляваць і запусціць нашу праграму. Вялікі. Радок мы падалі была рэхам да нас на тэрмінал. Гэта адбылося таму, Е функцыя пісаў Паток называецца стандартны вывад, або з-т-д-аўт. Калі нешта выводзіцца на стандартны вывад, то па змаўчанні адлюстроўвацца ў тэрмінале. Так што ўсё добра, але што, калі замест таго, каб проста адлюстраваннем радкі, мы хацелі захаваць яго ў файл? Напрыклад, мы маглі б дакладна памятаю, што наш Праграма зрабіў, калі мы далі яму пэўны ўваход пазней. Адзін падыход быў бы зрабіць гэта ў нашай праграме C, выкарыстоўваючы некаторыя адмысловыя функцыі для запісу файлаў, якія мы будзем гл. у іншае відэа. Яшчэ прасцей, хоць-бы як-то перанакіраваць стандартны выснова ў файл. Такім чынам, калі Printf піша ў стандартны вывад, ўтрыманне будзе быць запісаныя ў файл, а не адлюстроўвацца ў тэрмінале. Мы можам зрабіць гэта, дадаўшы знак больш, а затым на імя файла, у камандзе мы выкарыстоўваем, каб выканаць нашу праграму. Такім чынам, замест таго, каб проста выкананне. / Перанакіраванне, мы можам запусціце. / перанакіравання, а затым знак больш, а затым Файл, як file.txt. Давайце паглядзім, што адбываецца. OK. Звярніце ўвагу, што на гэты раз нічога не адлюстроўваецца на тэрмінале, але мы не змянілі змест нашых C праграмай на ўсіх. Давайце зараз разгледзім змесціва гэтага каталога з лац. Добра. Цяпер у нас ёсць новы файл у нашым каталогу з імем file.txt, , Якая з'яўляецца імя файла мы паставілі, калі мы запусцілі наш Перанакіраванне праграмы. Давайце адкрываць file.txt. І вось, мы бачым, што стандартны вывад з перанакіраваць было запісваюцца ў файл з імем file.txt. Так што давайце выканання папярэдняй каманды зноў, але пастаўкі іншы ўваход у гэты раз. Добра. Давайце зірнем на file.txt цяпер. Мы бачым тут, што файл быў перазапісаць, так што наша Арыгінальны ўваход больш не існуе. Калі мы замест гэтага хочаце дадаць у гэты файл, паставіўшы новыя ўваход ніжэй існуючага змесціва файла, мы можам выкарыстоўваць два больш, чым знакі, а не толькі адзін. Давайце паспрабуем. Цяпер, калі мы адкрыем file.txt зноў мы бачым, як нашы ўваходных ліній. У некаторых выпадках, мы маглі б адмовіцца ад любога Выхад нашай праграмы. Замест таго, каб пісаць выснову ў файл, а затым выдаленне Файл, калі мы скончым з гэтым, мы можам напісаць у спецыяльнай файл / Dev / нуль. Калі што-небудзь запісаць у / dev/null-- ці проста devnull для сцісласці - яна аўтаматычна выдаляецца. Так што думаю пра devnull як чорная дзірка для вашых дадзеных. Такім чынам, мы бачылі, як знак больш можа перанакіраваць стандартны вывад, давайце паглядзім, як мы можам перанакіраваць стандартны В - або з-т-д-у - Аналаг стандартны вывад. У той час як функцыі, як Printf запісы ў паток называецца стандартны вывад, GetString і аналагічныя функцыі чытання з плыні называецца стандартнага ўводу, які, па змаўчанні, з'яўляецца паток сімвалы, якія ўводзяць з клавіятуры. Мы можам перанакіраваць стандартны ўвод выкарыстаннем менш знакам, а затым па імя файла. Цяпер, замест запыту карыстальніка для ўваходу ў тэрмінал, праграма адкрые файл мы паказалі і выкарыстоўваць яго лініі ў якасці ўваходных дадзеных. Давайце паглядзім, што адбываецца. Вялікі. У першай радку file.txt была надрукаваная ў тэрмінал таму, што мы называем GetString раз. Калі б мы мелі яшчэ адзін выклік GetString ў нашай праграме, Наступная радок file.txt было б выкарыстоўваць у якасці ўваход на гэты заклік. Зноў жа, мы не змянілі нашу праграму C на ўсіх. Мы толькі змяніць тое, як мы яго запуску. А таксама памятаеце, што мы не стандартны вывад перанакіраваны на гэты раз, так што на выхадзе з праграмы ўсё яшчэ адлюстроўвацца ў акне тэрмінала. Мы можам, вядома, перанакіраваць стандартны ўвод і стандартны вывад, як гэта. Цяпер, file2.txt змяшчае першы радок file.txt. Такім чынам, выкарыстанне гэтых аператараў, мы былі ў стане прачытаць і запісы з тэкставых файлаў. Цяпер, давайце паглядзім, як мы можам выкарыстоўваць выснову адной праграмы, ўваход у іншую праграму. Такім чынам, вось яшчэ адзін просты праграмы C Я былі тут называюць hello.c. Як вы можаце бачыць, гэта проста выводзіць "Прывітанне там! "для карыстальніка. Калі я хачу перанакіраваць выкарыстоўваць у якасці ўваходных выхад прывітанне - іншая праграма - Я спачатку можа перанакіраваць стандартны вывад прывітанне ў файл з імем input.txt, а затым перанакіраваць паток ўводу перанакіраванне на тым жа файл - input.txt. Так што я магу зрабіць. / Прывітанне> input.txt. Націсніце клавішу Enter, каб выканаць гэта. Рушыў услед. / Пераадрасацыя < input.txt, і выканаць гэта. Такім чынам, мы можам скараціць гэта крыху кропкай з коскі, што дазваляе нам для запуску двух або больш каманд на той жа лініі. Таму я магу сказаць,. / Прывітанне> input.txt, кропка з коскі, . / Пераадрасацыя Final.txt. Такім чынам, калі мы адкрываем final.txt, у нас ёсць менавіта тое, што мы былі шукае: Спіс унікальныя імёны ў алфавітным парадку, захаваны ў тэкставым файле. Дарэчы, мы таксама маглі б сказаць роду < students.txt | Uniq> final.txt рабіць тое, тое ж самае, выкарыстоўваючы кожны з аператараў мы бачылі ў гэта відэа. Мяне клічуць Томі, і гэта CS50.