2 00:00:00,000 --> 00:00:02,470 >> SPEAKER 1: Ni skribi programon kiu stimulanta la uzanto por la nomoj kaj 3 00:00:02,470 --> 00:00:03,990 domoj de tri studentoj. 4 00:00:03,990 --> 00:00:07,300 Sed anstataŭ ĝuste presi siajn nomoj kaj domoj por la ekrano, ni 5 00:00:07,300 --> 00:00:09,660 anstataŭ krom tio, ke informoj al disko. 6 00:00:09,660 --> 00:00:14,530 Alivorte, ni kreas, diru, CSV dosiero, por komo disigitaj valoroj, 7 00:00:14,530 --> 00:00:17,720 kio estas efektive nur teksta dosiero programoj kiel Excel aŭ Nombroj 8 00:00:17,720 --> 00:00:21,690 povas malfermi, kaj efike helpos tiujn nomoj kaj domoj konstante por ke 9 00:00:21,690 --> 00:00:23,220 ni povas revizii ilin poste. 10 00:00:23,220 --> 00:00:25,960 >> Por tion fari, ni unue rigardu iuj boilerplate kodo kiun mi havas 11 00:00:25,960 --> 00:00:27,650 komenciĝis kun jam. 12 00:00:27,650 --> 00:00:32,380 Rimarku unue, ke inter la titolaj supren supro estas nun norma lib.h kio 13 00:00:32,380 --> 00:00:36,710 okazas al havi kelkaj funkcioj rilataj al dosiero / Aŭ, dosiero enigo kaj eligo. 14 00:00:36,710 --> 00:00:39,560 Rimarku, ke mi ankaŭ deklaris konstanta nomata Lernantoj - 15 00:00:39,560 --> 00:00:42,380 en la tuta kaskedoj - kies valoro Estas malfacile coded kiel tri. 16 00:00:42,380 --> 00:00:45,820 Rimarku nun ke interne de mia ĉefa programon, mi deklarante tabelo de 17 00:00:45,820 --> 00:00:50,270 grandeco tri uzante tiu konstanto nomata Studentoj ĉiu el kies membroj estas de 18 00:00:50,270 --> 00:00:51,650 tajpi studentoj. 19 00:00:51,650 --> 00:00:56,150 >> Memoras nun ke studento ni difini kiel havanta nomon kaj domon ambaŭ 20 00:00:56,150 --> 00:01:00,410 kio estas kordoj kiel por tiu deklaro instruas, skalara h. 21 00:01:00,410 --> 00:01:04,680 Nun reen en structs1.c, rimarki, ke mi esti unu por buklo tie ke tuj 22 00:01:04,680 --> 00:01:06,750 persisti de nulo ĝis tri. 23 00:01:06,750 --> 00:01:10,020 Ĝi okazas suflori mi por unu studento nomo kaj iu studento domo 24 00:01:10,020 --> 00:01:12,310 denove kaj denove kaj denove. 25 00:01:12,310 --> 00:01:15,620 >> Tiam ĉe la malsupro de tiu programo, rimarki, ke mi havas alian por buklo 26 00:01:15,620 --> 00:01:19,970 ke tuj liberigi la Ith studento nomo kaj la Ith studenta domo en 27 00:01:19,970 --> 00:01:21,570 simile konstruitaj buklo. 28 00:01:21,570 --> 00:01:24,480 Por esti certa, ni povus kombini tiujn masxojn en nur unu, sed mi volis 29 00:01:24,480 --> 00:01:28,180 havi iom da distingaj partoj de la kodo pro diskuto cxi tie. 30 00:01:28,180 --> 00:01:31,920 >> Nun en inter tiujn por masxojn, ni fakte havas alian, kaj tio onia 31 00:01:31,920 --> 00:01:35,210 celo en la vivo estas reale savi ĉiujn de tiuj nomoj kaj domoj, kiuj estas 32 00:01:35,210 --> 00:01:39,810 Nuntempe en RAM disko en la formo de komo disigitaj valoroj. 33 00:01:39,810 --> 00:01:42,080 Por tion fari, ni tuj uzi tri novaj funkcioj - 34 00:01:42,080 --> 00:01:47,450 F malferma, F printf, kaj F apude, kio malfermi dosieron, presi al dosiero, kaj 35 00:01:47,450 --> 00:01:48,440 fermi dosieron. 36 00:01:48,440 --> 00:01:49,690 Ni povas uzi ilin kiel sekvas. 37 00:01:49,690 --> 00:01:52,110 38 00:01:52,110 --> 00:01:58,240 >> ARKIVO, en ĉiuj ĉapojn, kiuj estas iom pri vidindaĵo en C, DOSIERO gets fopen 39 00:01:58,240 --> 00:02:03,020 citaĵo unquote kaj nun nomon por la fajliloj, diru, students.CSV, sed mi povis 40 00:02:03,020 --> 00:02:08,150 nomas ĝin plej ion, komo, kaj nun mi estas tuj specifi sola w interne 41 00:02:08,150 --> 00:02:09,390 de citiloj. 42 00:02:09,390 --> 00:02:13,290 W, kiel vi eble jam divenis jam, signifas ke fopen devus malfermi ĉi dosieron 43 00:02:13,290 --> 00:02:17,360 vokis Students.CSV por skribi tiom ke ni vere povas ŝpari iom da 44 00:02:17,360 --> 00:02:19,370 enhavoj al ĝi. 45 00:02:19,370 --> 00:02:23,080 >> Ni sekvanta ĉekon se dosieron estas ne egala al nula. 46 00:02:23,080 --> 00:02:25,860 Ĉar se ĝi estas, iu havas probable iris malbone tiaokaze ni 47 00:02:25,860 --> 00:02:28,340 ne devus procedi por provi presi ion al ŝi. 48 00:02:28,340 --> 00:02:33,400 Sed se ĝi ne estas nulaj, do ene de la krispa krampoj Mi iras ankaŭ persisti 49 00:02:33,400 --> 00:02:38,030 de i egalas 0 sur supren al studentoj, kaj mi tuj 50 00:02:38,030 --> 00:02:40,180 pliigo i sur ĉiu ripeto. 51 00:02:40,180 --> 00:02:45,750 Kaj ene de tiu ciklo, mi tuj fprintf tiel kiel presi al dosiero - 52 00:02:45,750 --> 00:02:47,940 specife la Mi jam malfermis - 53 00:02:47,940 --> 00:02:54,650 ŝnureto kiu similas tiun% s,% s backslash n fermi citaĵo. 54 00:02:54,650 --> 00:02:58,790 >> Kaj nun mi volas konekti al ĉiu el tiuj anstataŭiloj la efektiva valoroj 55 00:02:58,790 --> 00:03:03,390 de iu studento nomon kaj regxan domon uzante la skalara operatoro. 56 00:03:03,390 --> 00:03:10,030 Studentoj krampo i.name, studentoj krampo i.house proksime paren 57 00:03:10,030 --> 00:03:11,230 duon-dupunkto. 58 00:03:11,230 --> 00:03:16,180 Nun sub tiu buklo, mi simple irante voki fclose de dosiero en ordon 59 00:03:16,180 --> 00:03:18,520 por fine fermi la dosieron. 60 00:03:18,520 --> 00:03:21,360 >> Nun kiam mi kuros ĉi programo, mi ne devus reale vidi nenion pri la 61 00:03:21,360 --> 00:03:25,010 ekrano, sed mi devus havi post kurante tiun programon dosieron nomatan 62 00:03:25,010 --> 00:03:29,130 Students.CSV en la sama dosierujo ke Mi kuros la komandon en kiuj devus 63 00:03:29,130 --> 00:03:32,480 enhavi apartigita de komoj listo de valoroj. 64 00:03:32,480 --> 00:03:34,790 Ni rigardu. 65 00:03:34,790 --> 00:03:41,690 >> Faru structs 1. / Structs1 studento enoficigi, diru al David, 66 00:03:41,690 --> 00:03:43,140 Li devos vivi en Mather. 67 00:03:43,140 --> 00:03:46,890 Studenta nomon, diru, Lauren, ŝi faros vivi en Leverett. 68 00:03:46,890 --> 00:03:50,800 Studenta nomon, diru, Rob, Li devos vivi en Kirkland. 69 00:03:50,800 --> 00:03:54,050 Nun, denove, kiel atendis, nenio aperas esti okazinta, sed permesu al mi 70 00:03:54,050 --> 00:03:58,790 iru antaŭen je la komando prompto kaj tipon g redaktu students.CSV en esperojn ke 71 00:03:58,790 --> 00:04:00,850 ke dosiero ja ekzistas. 72 00:04:00,850 --> 00:04:07,010 >> Gedit students.CSV ENTER, kaj ja, rimarki, ke dosiero enhavanta pure 73 00:04:07,010 --> 00:04:11,320 teksto, sed teksto apartigitaj per komoj por ĉiu kampo, ja ekzistas. 74 00:04:11,320 --> 00:04:14,530 Kaj se ni uzis, ne la CS50 aparato, sed pli familiara Mac aŭ 75 00:04:14,530 --> 00:04:18,080 PC, ĝi rezultas ke ni povus ja malfermu ĉi CSV-dosiero kun pli 76 00:04:18,080 --> 00:04:20,400 familiara programo kiel Excel aŭ Numeroj. 77 00:04:20,400 --> 00:04:22,906