GARSIAKALBIS 1: Tegul parašyti programą, kuri paragina pavadinimų vartotojo ir Namai trijų studentams. Tačiau užuot tiesiog atsispausdinti savo pavadinimai ir namų į ekraną, tegul o išsaugoti šią informaciją į diską. Kitaip tariant, kurkime, tarkim, csv byla, dėl kableliais atskirtų reikšmių, kuris iš tikrųjų yra tik tekstinis failas, programų, pavyzdžiui, "Excel" ar numeriai galima atidaryti ir efektyviai išgelbėti tuos, pavadinimai ir namų visam laikui, kad galime peržiūrėti juos vėliau. Norėdami tai padaryti, tegul pirmas pažvelgti kai Standartiniai kodas, kad aš prasidėjo jau. Atkreipkite dėmesį, kad, pirma, tarp antraščių iki viršaus yra dabar standartinis lib.h kuris atsitinka, kad tam tikras funkcijas, susijusias į failą I / O, failo įvesties ir išvesties. Atkreipkite dėmesį, kad aš taip pat pareiškė konstanta vadinama STUDENTAI - visais dangteliais - kurių vertė yra sunkiai koduojami kaip trijų. Atkreipkite dėmesį, kad dabar pagrindinis mano viduje programa, aš skelbiantis masyvas dydis trijų naudojant šią konstantą, vadinamą STUDENTAI kiekvienas iš kurių nariai yra įveskite studentus. Prisiminkite, kad dabar studentas, mes apibrėžti kaip turintis vardą ir namus abu kurios stygos, kaip už tai deklaracija nurodo, dot val. Dabar atgal structs1.c, pastebėsite, kad aš buvo už linijos, kad čia vyksta kartoti nuo nulio iki trijų. Jis ketina greitai manęs studento pavadinimas ir studento namai vėl ir vėl ir vėl. Tada šios programos apačioje pastebėsite, kad turiu kitą kilpą kad ketina atlaisvinti osios studento pavadinimas ir ItH studento namai panašiai pastatytas kilpą. Norėdami būti tikri, mes galime sujungti šias linijas į vieną, o aš norėjau turėti keletą skirtingų segmentų kodą dėl diskusijų dėlei čia. Dabar tarp tų, kilpos, tegul iš tiesų turi kitą, ir tai vienas s gyvenimo tikslas yra faktiškai išsaugoti visus iš šių pavadinimų ir namų, kurie yra Šiuo metu RAM diską formos kableliais atskirtų reikšmių. Norėdami tai padaryti, mes ketiname naudoti Trys naujos funkcijos - F atviras F printf, ir F arti, kuri atidaryti failą, spausdinti į failą, ir uždaryti failą. Mes galime naudoti juos taip. FAILO visais dangteliais, kuris yra šiek tiek C smalsumas, failas paleidžiama fopen citata citatos ir dabar dėl pavadinimas failą, tarkim, students.CSV, bet galėčiau vadina jį labiausiai nieko, kablelis, dabar aš ketina nustatyti vieną w viduje dvigubų kabučių. W, kaip jūs galėjote atspėti jau reiškia, kad fopen turėtų atverti šį failą vadinamas Students.CSV rašyti taip kad mes iš tikrųjų galite sutaupyti šiek tiek turinį į jį. Leiskite kitą patikrinti, ar failas nėra lygus nulis. Nes jei jis yra, kažkas turi tikriausiai negerai tokiu atveju mes Neturėtumėte toliau tęsti pabandyti spausdinti nieko į jį. Bet jei tai ne nulis, tada viduje garbanotas petnešos aš ruošiuosi pakartoti nuo I lygus 0 nuo iki studentų, ir aš ruošiuosi prieaugio i kiekvienos iteracijos. Ir viduje šios linijos, aš einu fprintf taip spausdinti į failą - būtent vienas Aš jau atidarytas - eilutė, atrodo taip:% s% s Backslash n arti citata. Ir dabar aš noriu prijungti prie kiekvieno šios rezervuotų faktinės reikšmės studento vardas ir namuose naudojant taško operatorių. Studentai laikiklis i.name, studentai laikiklis i.house artimi skliaustas kabliataškis. Dabar toliau tai už linijos, aš tiesiog ketinate skambinti fclose Bylos tam galiausiai uždarykite failą. Dabar, kai aš paleisti šią programą, aš neturėtų iš tikrųjų matyti nieko ekranas, bet aš turėtų turėti po tekančiu ši programa failą pavadinimu Students.CSV į tą pačią direktoriją, kad Aš paleisti komandą, kuri turėtų būti atskirti kableliais sąrašas vertybes. Paimkime išvaizdą. Padaryti structs 1. / Structs1 studento pavadinimas, tarkim Dovydą, jis bus gyventi Mather. Studento vardas, tarkim, Lauren ji bus gyventi Leverett. Studento vardas, tarkim, Rob, jis bus gyventi Kirkland. Dabar, vėlgi, kaip ir tikėtasi, nieko atrodo buvo atsitikę, bet leiskite man eiti į priekį į komandų eilutę ir tipo g redaguoti students.CSV tikisi, kad kad byla iš tikrųjų egzistuoja. Gedit students.CSV ENTER, ir iš tiesų, pastebėsite, kad failas, kuriame yra grynai tekstas, tekstas atskirti kableliais kiekvienoje srityje, iš tiesų egzistuoja. Ir jei mes buvome naudojant ne CS50 prietaisas, bet labiau susipažinę "Mac" arba PC, paaiškėja, kad galėtume iš tikrųjų atidaryti šį CSV failą su daugiau susipažinęs programa, kaip "Excel" arba numerius.