[Powered by Google Translate] TOMMY: Selles videos me õppida suunata ja torud. Siiani oleme kasutanud funktsioone nagu printf kuni andmete väljastamine terminali ja toimib nagu getString mis võimaldab kasutajal anda oma panus meie programmi kasutades klaviatuuri. Lähme kiiresti heita pilk programm, mis saab rida panus kasutaja ja siis näitab seda. Real 7, me ajendades kasutajal stringi, ning siis real 8, me trüki see tagasi viia. Olgem kompileerida ja käivitada oma programmi. Suur. String me ette kordas tagasi meile terminalis. See juhtus, sest printf funktsiooni kirjutas oja nimetatakse standard välja, või s-t-d välja. Kui midagi on kirjutatud standardväljundisse, see on vaikimisi kuvatakse terminali. Nii et kõik on hästi ja hea, aga mis siis, kui selle asemel, et lihtsalt väljapanek string, tahtsime salvestage see fail? Näiteks tahetakse mäleta täpselt, mida meie programmi tegi, kui me andsime ta eriti sisend hiljem. Üks lahendus oleks teha seda meie C programm, kasutades Mõnede funktsioonide jaoks kirjalikult failid, et me vaata teise video. Veelgi lihtsam, aga oleks kuidagi suunata stdout faili. Nii, kui printf kirjutab standardväljundisse, sisu läheb kirjutatakse faili asemel kuvatakse terminali. Me võime teha just seda, lisades suurem-kui märk, millele järgneb poolt failinime, et käsk me kasutame täita meie programm. Niisiis, selle asemel et lihtsalt täidesaatva. / Suunata, saame joosta. / suunata, millele järgneb suurem kui märk, millele järgneb failinimi, nagu fail.txt. Vaatame, mis juhtub. OK. Pange tähele, et sel ajal, midagi kuvati terminalis, kuid me ei ole muutnud sisu meie C programm üldse. Olgem nüüd uurida sisu sellesse kataloogi koos ls. Hea küll. Meil on nüüd uus fail meie kataloogi nimega fail.txt, mis on faili nimi muretsesime, kui me jooksime meie Suuna programmi. Avame kuni fail.txt. Ja siin me näeme, et stdout välja suunata oli kirjutatakse faili nimega fail.txt. Nii et olgem joosta eelmise käsu uuesti, kuid varustamise teistlaadi seekord. Okei. Võtame pilk fail.txt nüüd. Me näeme siin, et fail on üle kirjutatud, nii et meie originaal sisend ei ole seal enam. Kui me selle asemel soovite lisada selle faili, pannes uus nimisoojusvõimsusega olemasoleva faili sisu, saame kasutada kaks suuremat-kui märke ühe asemel. Proovime seda. Nüüd, kui me avame fail.txt jälle näeme nii meie sisendi ridade. Mõnel juhul tahetakse ära visata toodang meie programm. Selle asemel, et kirjalikult väljund faili ja siis kustutada fail, kui me sellega lõpetanud, saame kirjutada, et erilist faili / dev / null. Kui midagi on kirjutatud / dev/null-- või lihtsalt devnull lühikeseks - see automaatselt ära visata. Nii et mõtle devnull nagu must auk oma andmeid. Nüüd oleme näinud, kuidas märk Suurem kui saab suunata stdout, vaatame, kuidas saame suunata standard - või s-t-D-IN - analoog standardväljundisse. Kuigi funktsioone nagu printf kirjutada oja nimetatakse stdout getString ja samalaadsed toimingud lugeda oja nimetatakse stdin, mis vaikimisi on oja Lõbu trükitud klaviatuuri. Me saame suunata stdin kasutades vähem kui märk, millele järgneb poolt failinimi. Nüüd, selle asemel, ajendades kasutaja sisend terminali programm avab faili me täpsustada ja kasutada oma read sisendiks. Vaatame, mis juhtub. Suur. Esimene rida fail.txt on trükitud terminali sest me nõuame getString kord. Kui meil oleks teine ​​kõne getString meie programmis, Järgmine rida fail.txt oleks kasutatud nii panuse, et kõne. Jällegi, me ei ole muudetud meie C programm üldse. Me ainult ei muutu, kui me käivitada. Ja ka meeles pidama, et me ei ole ümber stdout seekord nii väljund programmi oli veel kuvatakse terminalis. Me võime muidugi suunata nii stdin ja stdout niimoodi. Nüüd file2.txt sisaldab esimese rea fail.txt. Niisiis, kasutades neid ettevõtjaid, oleme olnud võimelised lugema ja kirjuta tekstifailidest. Nüüd vaatame, kuidas saame kasutada toodangut ühe programmi sisend teise programmi. Nii et siin on veel üks lihtne C programmi I on siin nimetatakse hello.c. Nagu näete, see lihtsalt väljastab "Tere seal! "kasutaja. Kui ma tahan suunata kasutama sisendina väljund tere - teine ​​programm - Võiksin 1. suunata stdout on tere fail nimega INPUT.TXT, siis suunata stdin on suunata sellele samale fail - INPUT.TXT. Nii et ma suudan. / Hello> INPUT.TXT. Vajuta Enter täita seda. Järgneb. / Suunata < INPUT.TXT, ja täidab seda. Nii saame lühendada seda natuke semikooloniga, mis võimaldab meil käivitada kahte või enamat käsud samal joonel. Nii et võin öelda,. / Hello> INPUT.TXT, semikoolon, . / Suunata Final.txt. Niisiis, kui me avada final.txt, meil on täpselt see, mida olime otsin: nimekirja unikaalsed nimed tähestikulises järjekorras, salvestatakse tekstifailina. Muide, me ka võinud öelda omamoodi < students.txt | UNIQ> final.txt teha täpselt sama asi, kasutades igale ettevõtjale, me oleme näinud seda videot. Minu nimi on Tommy, ja see on CS50.