2 00:00:00,000 --> 00:00:02,470 >> SPEAKER 1: Napišimo program, ki pozove uporabnika za imeni in 3 00:00:02,470 --> 00:00:03,990 hiše treh študentov. 4 00:00:03,990 --> 00:00:07,300 Vendar ne zgolj izpisal njihovo Imena in hiše na zaslon, dajva 5 00:00:07,300 --> 00:00:09,660 namesto da shranite podatke na disk. 6 00:00:09,660 --> 00:00:14,530 Z drugimi besedami, kaj je ustvarjanje, recimo, CSV datoteke, za vejico ločene vrednosti 7 00:00:14,530 --> 00:00:17,720 ki je pravzaprav le besedilna datoteka, ki programi, kot je Excel ali številkah 8 00:00:17,720 --> 00:00:21,690 lahko odprete in učinkovito razen tistih Imena in hiše za stalno, tako da 9 00:00:21,690 --> 00:00:23,220 smo jih lahko ogledate kasneje. 10 00:00:23,220 --> 00:00:25,960 >> To storite tako, kaj je najprej si oglejte nekateri boilerplate kodo, ki sem 11 00:00:25,960 --> 00:00:27,650 začel z že. 12 00:00:27,650 --> 00:00:32,380 Opazimo, da, prvič, v glavo do vrha je zdaj standardni lib.h ki 13 00:00:32,380 --> 00:00:36,710 se zgodi, da so nekatere naloge, povezane vložiti I / O, vhod datoteke in izhod. 14 00:00:36,710 --> 00:00:39,560 Obvestilo, da sem tudi izjavila, stalna pozval študente - 15 00:00:39,560 --> 00:00:42,380 v vseh kape - katerih vrednost je težko kodirane kot tri. 16 00:00:42,380 --> 00:00:45,820 Opazimo, da je zdaj notranjosti moj glavni Program, jaz razglasitvi niz 17 00:00:45,820 --> 00:00:50,270 Velikost tri uporabo tega konstanto, imenovano ŠTUDENTI katerih posamična članov je 18 00:00:50,270 --> 00:00:51,650 tip študentom. 19 00:00:51,650 --> 00:00:56,150 >> Spomnimo se, da je zdaj študent bomo opredeliti da ima ime in hišo oba 20 00:00:56,150 --> 00:01:00,410 ki so nizi je na tem Izjava naroča, dot h. 21 00:01:00,410 --> 00:01:04,680 Zdaj pa nazaj v structs1.c, opazil, da sem so za zanko tukaj, da se dogaja, da 22 00:01:04,680 --> 00:01:06,750 Ponovil od nič do tri. 23 00:01:06,750 --> 00:01:10,020 To se dogaja, da me vpraša za študenta je Ime in študentske hiša 24 00:01:10,020 --> 00:01:12,310 spet in spet in spet. 25 00:01:12,310 --> 00:01:15,620 >> Nato na dnu tega programa opazili, da imam še za zanko 26 00:01:15,620 --> 00:01:19,970 da se bo to brezplačno wi študent je Ime in i-ti študentsko hišo v 27 00:01:19,970 --> 00:01:21,570 Podobno zgrajeno zanko. 28 00:01:21,570 --> 00:01:24,480 Če želite biti prepričani, bi lahko kombinirate zank v samo eno, ampak sem hotel 29 00:01:24,480 --> 00:01:28,180 imajo nekatere različne segmente kode zaradi razpravo tukaj. 30 00:01:28,180 --> 00:01:31,920 >> Zdaj med tiste, za zanke, dajva dejansko imajo drugi, in to je 31 00:01:31,920 --> 00:01:35,210 Cilj v življenju je, da dejansko prihranite vse teh imen in hiš, ki so 32 00:01:35,210 --> 00:01:39,810 Trenutno v RAM na disk v obliki z vejico ločenih vrednosti. 33 00:01:39,810 --> 00:01:42,080 To storite tako, da bomo uporabili tri nove funkcije - 34 00:01:42,080 --> 00:01:47,450 F odprta, F printf in F blizu, ki Datoteko odprete tako, tiskati v datoteko, in 35 00:01:47,450 --> 00:01:48,440 zaprite datoteko. 36 00:01:48,440 --> 00:01:49,690 Lahko jih uporabite kot sledi. 37 00:01:49,690 --> 00:01:52,110 38 00:01:52,110 --> 00:01:58,240 >> FILE v vseh kape, kar je nekoliko radovednost v C, dobi FILE fopen 39 00:01:58,240 --> 00:02:03,020 quote citata in zdaj ime datoteko, recimo, students.CSV, vendar sem lahko 40 00:02:03,020 --> 00:02:08,150 pravijo najbolj ničesar, vejica in zdaj sem bo določiti enoten w notranjosti 41 00:02:08,150 --> 00:02:09,390 dvojnih narekovajev. 42 00:02:09,390 --> 00:02:13,290 W, kot ste morda uganili že, pomeni, da mora fopen odpreti to datoteko 43 00:02:13,290 --> 00:02:17,360 pozval Students.CSV za pisanje, tako da bomo lahko dejansko prihranite nekaj 44 00:02:17,360 --> 00:02:19,370 Vsebine z njo. 45 00:02:19,370 --> 00:02:23,080 >> Poglejmo naslednji pregled, če datoteka ni enaka null. 46 00:02:23,080 --> 00:02:25,860 Ker če je to, kar je verjetno šlo narobe v tem primeru smo 47 00:02:25,860 --> 00:02:28,340 ne sme nadaljevati, da bi poskušali natisniti ničesar z njim. 48 00:02:28,340 --> 00:02:33,400 Če pa to ni nič, potem pa znotraj zaviti oklepaji Jaz bom Ponovil 49 00:02:33,400 --> 00:02:38,030 od i je enak 0 na do študentov, in bom 50 00:02:38,030 --> 00:02:40,180 prirastek i na vsaki ponovitvi. 51 00:02:40,180 --> 00:02:45,750 In znotraj te zanke, bom fprintf tako da tiskati v datoteko - 52 00:02:45,750 --> 00:02:47,940 posebej ena Sem že odprl - 53 00:02:47,940 --> 00:02:54,650 Niz, ki izgleda kot to% s,% s backslash n blizu quote. 54 00:02:54,650 --> 00:02:58,790 >> In zdaj želim, da priključite na vsak te ograde dejanske vrednosti 55 00:02:58,790 --> 00:03:03,390 imena študenta in hiše uporabi operator pika. 56 00:03:03,390 --> 00:03:10,030 Študenti nosilec i.name, študenti Nosilec i.house blizu paren 57 00:03:10,030 --> 00:03:11,230 podpičjem. 58 00:03:11,230 --> 00:03:16,180 Zdaj pod to zanko, da sem preprosto bo poklical fclose datoteke, da bi 59 00:03:16,180 --> 00:03:18,520 na koncu zaprite datoteko. 60 00:03:18,520 --> 00:03:21,360 >> Zdaj, ko sem teči ta program, ne bi smeli dejansko videli ničesar 61 00:03:21,360 --> 00:03:25,010 zaslon, ampak bi moral imeti po zagonu ta program datoteko z imenom 62 00:03:25,010 --> 00:03:29,130 Students.CSV v istem imeniku, ki Vodim ukaz, da naj bi 63 00:03:29,130 --> 00:03:32,480 vsebuje z vejico ločene Seznam vrednosti. 64 00:03:32,480 --> 00:03:34,790 Oglejmo pogled. 65 00:03:34,790 --> 00:03:41,690 >> Naredite konstruktov 1 /. Structs1 študent je ime, recimo David, 66 00:03:41,690 --> 00:03:43,140 on bo živel v Mather. 67 00:03:43,140 --> 00:03:46,890 Ime študenta, recimo, Lauren, ona živi v Leverett. 68 00:03:46,890 --> 00:03:50,800 Ime študenta, recimo, Rob, on bo živel v Kirkland. 69 00:03:50,800 --> 00:03:54,050 Zdaj, spet, kot je bilo pričakovano, se zdi nič da se je zgodilo, ampak naj 70 00:03:54,050 --> 00:03:58,790 pojdi v ukazno vrstico in tip g edit students.CSV v upanju, da 71 00:03:58,790 --> 00:04:00,850 Ta datoteka zares obstaja. 72 00:04:00,850 --> 00:04:07,010 >> Gedit students.CSV ENTER, in res, opazili, da spis, ki vsebuje zgolj 73 00:04:07,010 --> 00:04:11,320 Besedilo, ampak besedilo, ločene z vejicami Za vsako polje, v resnici obstaja. 74 00:04:11,320 --> 00:04:14,530 In če smo s pomočjo, ne CS50 aparat, ampak bolj seznanjeni Mac ali 75 00:04:14,530 --> 00:04:18,080 PC, se izkaže, da smo lahko zares odpreti to datoteko CSV z več 76 00:04:18,080 --> 00:04:20,400 pozna program, kot so Excel ali številke. 77 00:04:20,400 --> 00:04:22,906