2 00:00:00,000 --> 00:00:02,470 >> GARSIAKALBIS 1: Tegul parašyti programą, kuri paragina pavadinimų vartotojo ir 3 00:00:02,470 --> 00:00:03,990 Namai trijų studentams. 4 00:00:03,990 --> 00:00:07,300 Tačiau užuot tiesiog atsispausdinti savo pavadinimai ir namų į ekraną, tegul 5 00:00:07,300 --> 00:00:09,660 o išsaugoti šią informaciją į diską. 6 00:00:09,660 --> 00:00:14,530 Kitaip tariant, kurkime, tarkim, csv byla, dėl kableliais atskirtų reikšmių, 7 00:00:14,530 --> 00:00:17,720 kuris iš tikrųjų yra tik tekstinis failas, programų, pavyzdžiui, "Excel" ar numeriai 8 00:00:17,720 --> 00:00:21,690 galima atidaryti ir efektyviai išgelbėti tuos, pavadinimai ir namų visam laikui, kad 9 00:00:21,690 --> 00:00:23,220 galime peržiūrėti juos vėliau. 10 00:00:23,220 --> 00:00:25,960 >> Norėdami tai padaryti, tegul pirmas pažvelgti kai Standartiniai kodas, kad aš 11 00:00:25,960 --> 00:00:27,650 prasidėjo jau. 12 00:00:27,650 --> 00:00:32,380 Atkreipkite dėmesį, kad, pirma, tarp antraščių iki viršaus yra dabar standartinis lib.h kuris 13 00:00:32,380 --> 00:00:36,710 atsitinka, kad tam tikras funkcijas, susijusias į failą I / O, failo įvesties ir išvesties. 14 00:00:36,710 --> 00:00:39,560 Atkreipkite dėmesį, kad aš taip pat pareiškė konstanta vadinama STUDENTAI - 15 00:00:39,560 --> 00:00:42,380 visais dangteliais - kurių vertė yra sunkiai koduojami kaip trijų. 16 00:00:42,380 --> 00:00:45,820 Atkreipkite dėmesį, kad dabar pagrindinis mano viduje programa, aš skelbiantis masyvas 17 00:00:45,820 --> 00:00:50,270 dydis trijų naudojant šią konstantą, vadinamą STUDENTAI kiekvienas iš kurių nariai yra 18 00:00:50,270 --> 00:00:51,650 įveskite studentus. 19 00:00:51,650 --> 00:00:56,150 >> Prisiminkite, kad dabar studentas, mes apibrėžti kaip turintis vardą ir namus abu 20 00:00:56,150 --> 00:01:00,410 kurios stygos, kaip už tai deklaracija nurodo, dot val. 21 00:01:00,410 --> 00:01:04,680 Dabar atgal structs1.c, pastebėsite, kad aš buvo už linijos, kad čia vyksta 22 00:01:04,680 --> 00:01:06,750 kartoti nuo nulio iki trijų. 23 00:01:06,750 --> 00:01:10,020 Jis ketina greitai manęs studento pavadinimas ir studento namai 24 00:01:10,020 --> 00:01:12,310 vėl ir vėl ir vėl. 25 00:01:12,310 --> 00:01:15,620 >> Tada šios programos apačioje pastebėsite, kad turiu kitą kilpą 26 00:01:15,620 --> 00:01:19,970 kad ketina atlaisvinti osios studento pavadinimas ir ItH studento namai 27 00:01:19,970 --> 00:01:21,570 panašiai pastatytas kilpą. 28 00:01:21,570 --> 00:01:24,480 Norėdami būti tikri, mes galime sujungti šias linijas į vieną, o aš norėjau 29 00:01:24,480 --> 00:01:28,180 turėti keletą skirtingų segmentų kodą dėl diskusijų dėlei čia. 30 00:01:28,180 --> 00:01:31,920 >> Dabar tarp tų, kilpos, tegul iš tiesų turi kitą, ir tai vienas s 31 00:01:31,920 --> 00:01:35,210 gyvenimo tikslas yra faktiškai išsaugoti visus iš šių pavadinimų ir namų, kurie yra 32 00:01:35,210 --> 00:01:39,810 Šiuo metu RAM diską formos kableliais atskirtų reikšmių. 33 00:01:39,810 --> 00:01:42,080 Norėdami tai padaryti, mes ketiname naudoti Trys naujos funkcijos - 34 00:01:42,080 --> 00:01:47,450 F atviras F printf, ir F arti, kuri atidaryti failą, spausdinti į failą, ir 35 00:01:47,450 --> 00:01:48,440 uždaryti failą. 36 00:01:48,440 --> 00:01:49,690 Mes galime naudoti juos taip. 37 00:01:49,690 --> 00:01:52,110 38 00:01:52,110 --> 00:01:58,240 >> FAILO visais dangteliais, kuris yra šiek tiek C smalsumas, failas paleidžiama fopen 39 00:01:58,240 --> 00:02:03,020 citata citatos ir dabar dėl pavadinimas failą, tarkim, students.CSV, bet galėčiau 40 00:02:03,020 --> 00:02:08,150 vadina jį labiausiai nieko, kablelis, dabar aš ketina nustatyti vieną w viduje 41 00:02:08,150 --> 00:02:09,390 dvigubų kabučių. 42 00:02:09,390 --> 00:02:13,290 W, kaip jūs galėjote atspėti jau reiškia, kad fopen turėtų atverti šį failą 43 00:02:13,290 --> 00:02:17,360 vadinamas Students.CSV rašyti taip kad mes iš tikrųjų galite sutaupyti šiek tiek 44 00:02:17,360 --> 00:02:19,370 turinį į jį. 45 00:02:19,370 --> 00:02:23,080 >> Leiskite kitą patikrinti, ar failas nėra lygus nulis. 46 00:02:23,080 --> 00:02:25,860 Nes jei jis yra, kažkas turi tikriausiai negerai tokiu atveju mes 47 00:02:25,860 --> 00:02:28,340 Neturėtumėte toliau tęsti pabandyti spausdinti nieko į jį. 48 00:02:28,340 --> 00:02:33,400 Bet jei tai ne nulis, tada viduje garbanotas petnešos aš ruošiuosi pakartoti 49 00:02:33,400 --> 00:02:38,030 nuo I lygus 0 nuo iki studentų, ir aš ruošiuosi 50 00:02:38,030 --> 00:02:40,180 prieaugio i kiekvienos iteracijos. 51 00:02:40,180 --> 00:02:45,750 Ir viduje šios linijos, aš einu fprintf taip spausdinti į failą - 52 00:02:45,750 --> 00:02:47,940 būtent vienas Aš jau atidarytas - 53 00:02:47,940 --> 00:02:54,650 eilutė, atrodo taip:% s% s Backslash n arti citata. 54 00:02:54,650 --> 00:02:58,790 >> Ir dabar aš noriu prijungti prie kiekvieno šios rezervuotų faktinės reikšmės 55 00:02:58,790 --> 00:03:03,390 studento vardas ir namuose naudojant taško operatorių. 56 00:03:03,390 --> 00:03:10,030 Studentai laikiklis i.name, studentai laikiklis i.house artimi skliaustas 57 00:03:10,030 --> 00:03:11,230 kabliataškis. 58 00:03:11,230 --> 00:03:16,180 Dabar toliau tai už linijos, aš tiesiog ketinate skambinti fclose Bylos tam 59 00:03:16,180 --> 00:03:18,520 galiausiai uždarykite failą. 60 00:03:18,520 --> 00:03:21,360 >> Dabar, kai aš paleisti šią programą, aš neturėtų iš tikrųjų matyti nieko 61 00:03:21,360 --> 00:03:25,010 ekranas, bet aš turėtų turėti po tekančiu ši programa failą pavadinimu 62 00:03:25,010 --> 00:03:29,130 Students.CSV į tą pačią direktoriją, kad Aš paleisti komandą, kuri turėtų 63 00:03:29,130 --> 00:03:32,480 būti atskirti kableliais sąrašas vertybes. 64 00:03:32,480 --> 00:03:34,790 Paimkime išvaizdą. 65 00:03:34,790 --> 00:03:41,690 >> Padaryti structs 1. / Structs1 studento pavadinimas, tarkim Dovydą, 66 00:03:41,690 --> 00:03:43,140 jis bus gyventi Mather. 67 00:03:43,140 --> 00:03:46,890 Studento vardas, tarkim, Lauren ji bus gyventi Leverett. 68 00:03:46,890 --> 00:03:50,800 Studento vardas, tarkim, Rob, jis bus gyventi Kirkland. 69 00:03:50,800 --> 00:03:54,050 Dabar, vėlgi, kaip ir tikėtasi, nieko atrodo buvo atsitikę, bet leiskite man 70 00:03:54,050 --> 00:03:58,790 eiti į priekį į komandų eilutę ir tipo g redaguoti students.CSV tikisi, kad 71 00:03:58,790 --> 00:04:00,850 kad byla iš tikrųjų egzistuoja. 72 00:04:00,850 --> 00:04:07,010 >> Gedit students.CSV ENTER, ir iš tiesų, pastebėsite, kad failas, kuriame yra grynai 73 00:04:07,010 --> 00:04:11,320 tekstas, tekstas atskirti kableliais kiekvienoje srityje, iš tiesų egzistuoja. 74 00:04:11,320 --> 00:04:14,530 Ir jei mes buvome naudojant ne CS50 prietaisas, bet labiau susipažinę "Mac" arba 75 00:04:14,530 --> 00:04:18,080 PC, paaiškėja, kad galėtume iš tikrųjų atidaryti šį CSV failą su daugiau 76 00:04:18,080 --> 00:04:20,400 susipažinęs programa, kaip "Excel" arba numerius. 77 00:04:20,400 --> 00:04:22,906