2 00:00:00,000 --> 00:00:02,470 >> SPEAKER 1: Írjunk egy programot, amely kéri a felhasználót, hogy a nevek és 3 00:00:02,470 --> 00:00:03,990 házak három diák. 4 00:00:03,990 --> 00:00:07,300 De ahelyett, hogy csak ki kell nyomtatni a nevét és házak a képernyőn, nézzük 5 00:00:07,300 --> 00:00:09,660 ahelyett, kivéve, hogy adatokat a lemezre. 6 00:00:09,660 --> 00:00:14,530 Más szavakkal, hozzunk létre, mondjuk, a CSV fájl, a vesszővel elválasztott értékek, 7 00:00:14,530 --> 00:00:17,720 ami valójában csak egy szöveges fájl, amely programok, mint például az Excel vagy a számok 8 00:00:17,720 --> 00:00:21,690 nyithat, és hatékonyan mentse azokat Nevek és házak véglegesen, hogy a 9 00:00:21,690 --> 00:00:23,220 akkor felül őket később. 10 00:00:23,220 --> 00:00:25,960 >> Ehhez nézzük először nézd meg, Néhány boilerplate kódot, hogy én már 11 00:00:25,960 --> 00:00:27,650 kezdődött már. 12 00:00:27,650 --> 00:00:32,380 Figyeljük meg először, hogy a fejlécbe up tetején van már standard lib.h amely 13 00:00:32,380 --> 00:00:36,710 előfordul, hogy bizonyos funkciók kapcsolódó file I / O, file típusú input és output. 14 00:00:36,710 --> 00:00:39,560 Figyeljük meg, hogy én is kijelentette, állandó nevű diák - 15 00:00:39,560 --> 00:00:42,380 minden sapkák - amelynek értéke kemény kódolt három. 16 00:00:42,380 --> 00:00:45,820 Figyeljük meg, most, hogy a belsejében a fő programot, én nyilvánította tömb 17 00:00:45,820 --> 00:00:50,270 size három használ, hogy állandó úgynevezett Diákok minden amelynek tagok a 18 00:00:50,270 --> 00:00:51,650 típusú diákok. 19 00:00:51,650 --> 00:00:56,150 >> Emlékezzünk vissza, hogy egy diák fogjuk meghatározni mintha egy nevet és egy ház mindkét 20 00:00:56,150 --> 00:01:00,410 amelyek a húrok, mint egy ezt nyilatkozat arra utasítja, pont h. 21 00:01:00,410 --> 00:01:04,680 Most vissza structs1.c, észre, hogy én van egy for ciklus, hogy itt fog 22 00:01:04,680 --> 00:01:06,750 ismételget nulláról maximum három. 23 00:01:06,750 --> 00:01:10,020 Ez lesz megkérdezze a diák nevét és a diák háza 24 00:01:10,020 --> 00:01:12,310 újra és újra és újra. 25 00:01:12,310 --> 00:01:15,620 >> Ezután az alján ezt a programot, észre, hogy van egy másik a loop 26 00:01:15,620 --> 00:01:19,970 hogy megy, hogy szabad az i-edik diák nevét és az i-edik tanuló házban 27 00:01:19,970 --> 00:01:21,570 hasonlóan épített hurok. 28 00:01:21,570 --> 00:01:24,480 Az biztos, hogy mi is össze azokat a hurok a csak egy, de azt akartam, hogy 29 00:01:24,480 --> 00:01:28,180 van egyes különálló szegmenseiben kód kedvéért vita itt. 30 00:01:28,180 --> 00:01:31,920 >> Most azok között a hurkok, nézzük valójában egy másik, és ez az ember 31 00:01:31,920 --> 00:01:35,210 célja az életben, hogy ténylegesen menteni minden Az ezeket a neveket és a házak, amelyek 32 00:01:35,210 --> 00:01:39,810 Jelenleg RAM lemezre formában vesszővel elválasztott értékek. 33 00:01:39,810 --> 00:01:42,080 Ehhez fogjuk használni három új funkciók - 34 00:01:42,080 --> 00:01:47,450 F nyitva, F printf, és az F-szoros, amely nyisson meg egy fájlt, hogy fájlba nyomtasson, és 35 00:01:47,450 --> 00:01:48,440 zárja be a fájlt. 36 00:01:48,440 --> 00:01:49,690 Tudjuk használni őket, a következők szerint. 37 00:01:49,690 --> 00:01:52,110 38 00:01:52,110 --> 00:01:58,240 >> FILE, minden sapkák, amely némileg a a kíváncsiság C, fájl lesz fopen 39 00:01:58,240 --> 00:02:03,020 quote idézet vége és most egy nevet a fájl, mondjuk, students.CSV, de nem tudtam 40 00:02:03,020 --> 00:02:08,150 hívják a legtöbb semmit, vessző, és most én vagyok fog megadni egy w belül 41 00:02:08,150 --> 00:02:09,390 Az idézőjelek. 42 00:02:09,390 --> 00:02:13,290 W, ahogy sejteni lehetett már, azt jelenti, hogy fopen kellene megnyitni ezt a fájlt 43 00:02:13,290 --> 00:02:17,360 hívott Students.CSV írásra, így hogy valóban félre 44 00:02:17,360 --> 00:02:19,370 tartalmát hozzá. 45 00:02:19,370 --> 00:02:23,080 >> Nézzük következő ellenőrzés, ha a fájl nem egyenlő null. 46 00:02:23,080 --> 00:02:25,860 Mert ha igen, valami valószínűleg baj ebben az esetben is 47 00:02:25,860 --> 00:02:28,340 ne folytassa próbálni nyomtatni bármit hozzá. 48 00:02:28,340 --> 00:02:33,400 De ha ez nem nulla, akkor belül a kapcsos zárójelek fogok iterációkhoz 49 00:02:33,400 --> 00:02:38,030 az i értéke 0 akár a diákok, és fogok 50 00:02:38,030 --> 00:02:40,180 növekmény i minden iterációban. 51 00:02:40,180 --> 00:02:45,750 És belül erre a ciklusra, fogok fprintf hogy nyomtatni a file - 52 00:02:45,750 --> 00:02:47,940 közelebbről, az egyik Már megnyílt - 53 00:02:47,940 --> 00:02:54,650 egy sor ami így néz ki:% s,% s backslash n közel árajánlatot. 54 00:02:54,650 --> 00:02:58,790 >> És most azt akarom, hogy csatlakoztassa a minden azok helyőrzőket a tényleges értékek 55 00:02:58,790 --> 00:03:03,390 egy diák nevét és a házat a pont operátor. 56 00:03:03,390 --> 00:03:10,030 Diákok konzol i.name, diákok konzol i.house közel paren 57 00:03:10,030 --> 00:03:11,230 pontosvessző. 58 00:03:11,230 --> 00:03:16,180 Most ez alatt a ciklus, én egyszerűen fogja hívni fclose fájl érdekében 59 00:03:16,180 --> 00:03:18,520 hogy végül zárja be a fájlt. 60 00:03:18,520 --> 00:03:21,360 >> Most, amikor fut a program, nem kellene valóban látni semmit a 61 00:03:21,360 --> 00:03:25,010 képernyőn, de kellett volna futtatása után ez a program egy fájlt a 62 00:03:25,010 --> 00:03:29,130 Students.CSV ugyanabban a könyvtárban, hogy Én vezetem a parancsot, hogy amennyiben 63 00:03:29,130 --> 00:03:32,480 tartalmazza a vesszővel elválasztott értékek listája. 64 00:03:32,480 --> 00:03:34,790 Vessünk egy pillantást. 65 00:03:34,790 --> 00:03:41,690 >> Legyen struktúrákat 1.. / Structs1 diák név, mondjuk David, 66 00:03:41,690 --> 00:03:43,140 fog élni Mather. 67 00:03:43,140 --> 00:03:46,890 Hallgató nevét, mondjuk, Lauren, ő lesz élni Leverett. 68 00:03:46,890 --> 00:03:50,800 Hallgató nevét, mondjuk, Rob, fog élni Kirkland. 69 00:03:50,800 --> 00:03:54,050 Nos, megint, mint az várható volt, semmi nem jelenik meg hogy történt, de hadd 70 00:03:54,050 --> 00:03:58,790 megy előre, a parancssort, és írja g szerkesztés students.CSV abban a reményben, hogy az 71 00:03:58,790 --> 00:04:00,850 , hogy a fájl valóban létezik. 72 00:04:00,850 --> 00:04:07,010 >> Gedit students.CSV az ENTER billentyűt, és valóban, észre, hogy a fájlt, amely tisztán 73 00:04:07,010 --> 00:04:11,320 szöveget, de szöveg vesszővel elválasztva minden területen, valóban létezik. 74 00:04:11,320 --> 00:04:14,530 És ha használta, nem pedig CS50 készülék, de a jobban ismert Mac vagy 75 00:04:14,530 --> 00:04:18,080 PC, kiderül, hogy valóban képes nyissa meg ezt a CSV fájlt egy 76 00:04:18,080 --> 00:04:20,400 ismerős program, mint például az Excel vagy a számok. 77 00:04:20,400 --> 00:04:22,906