2 00:00:00,000 --> 00:00:02,470 >> Выступоўца 1: Давайце напішам праграму, якая запытвае ў карыстальніка імёны і 3 00:00:02,470 --> 00:00:03,990 дома трох студэнтаў. 4 00:00:03,990 --> 00:00:07,300 Але замест таго, проста раздрукаваць іх імёны і дамоў да экрана, давайце 5 00:00:07,300 --> 00:00:09,660 замест захаваць гэтую інфармацыю на дыск. 6 00:00:09,660 --> 00:00:14,530 Іншымі словамі, давайце створым, скажам, CSV файл, для значэнняў, падзеленых коскамі, 7 00:00:14,530 --> 00:00:17,720 якія на самай справе проста тэкставы файл, які праграм, як Excel або Numbers 8 00:00:17,720 --> 00:00:21,690 можна адкрыць, і эфектыўна выратаваць тых, Імёны і дома пастаянна, так што 9 00:00:21,690 --> 00:00:23,220 мы можам праглядаць іх пазней. 10 00:00:23,220 --> 00:00:25,960 >> Каб зрабіць гэта, давайце спачатку зірнем на некаторыя стандартны код, што ў мяне ёсць 11 00:00:25,960 --> 00:00:27,650 пачалося з ужо. 12 00:00:27,650 --> 00:00:32,380 Звярніце ўвагу, што сярод першых загалоўкаў наверсе цяпер стандарт lib.h якія 13 00:00:32,380 --> 00:00:36,710 здараецца, ёсць некаторыя функцыі, звязаныя падаць ўводу-высновы, ўвод / файла і выхад. 14 00:00:36,710 --> 00:00:39,560 Звярніце ўвагу, што я таксама заявіў пастаянная называецца СТУДЭНТЫ - 15 00:00:39,560 --> 00:00:42,380 загалоўнымі літарамі - значэнне якога жорстка запраграмаваны як тры. 16 00:00:42,380 --> 00:00:45,820 Звярніце ўвагу цяпер, што ўнутры мая галоўная Праграма, я абвяшчаю масіў 17 00:00:45,820 --> 00:00:50,270 Памер тры дапамогай гэтай канстанты з імем СТУДЭНТЫ кожны з членаў, мае 18 00:00:50,270 --> 00:00:51,650 увядзіце студэнтаў. 19 00:00:51,650 --> 00:00:56,150 >> Успомнім цяпер, што студэнт мы вызначым як якія маюць імя і дом абодва 20 00:00:56,150 --> 00:01:00,410 якія з'яўляюцца радкамі, як за гэта Дэкларацыя загадвае, кропка ч. 21 00:01:00,410 --> 00:01:04,680 Цяпер вернемся ў structs1.c, заўважылі, што я маюць цыкл тут, што збіраецца 22 00:01:04,680 --> 00:01:06,750 ітэрацыі ад нуля да трох. 23 00:01:06,750 --> 00:01:10,020 Гэта збіраецца падказваюць мне для студэнта Імя і дом студэнта 24 00:01:10,020 --> 00:01:12,310 зноў і зноў і зноў. 25 00:01:12,310 --> 00:01:15,620 >> Затым у ніжняй частцы гэтай праграмы заўважыць, што ў мяне ёсць яшчэ адзін цыкл 26 00:01:15,620 --> 00:01:19,970 што збіраецца вызваліць г-й студэнта Імя і дом-й студэнцкі ў 27 00:01:19,970 --> 00:01:21,570 Аналагічна будуецца цыкл. 28 00:01:21,570 --> 00:01:24,480 Трэба адзначыць, што мы маглі б аб'яднаць гэтыя завесы ў адзін, але я хацеў бы 29 00:01:24,480 --> 00:01:28,180 ёсць некаторыя відавочныя сегменты кода дзеля абмеркавання тут. 30 00:01:28,180 --> 00:01:31,920 >> Зараз у паміж тымі, для завес, давайце на самай справе ёсць яшчэ адзін, і гэты'S 31 00:01:31,920 --> 00:01:35,210 мэта ў жыцці на самай справе захаваць усе з гэтых імёнаў і дамоў, якія 32 00:01:35,210 --> 00:01:39,810 У цяперашні час у аператыўнай памяці на дыск у выглядзе з значэнняў, падзеленых коскамі. 33 00:01:39,810 --> 00:01:42,080 Каб зрабіць гэта, мы збіраемся выкарыстаць тры новыя функцыі - 34 00:01:42,080 --> 00:01:47,450 F адкрыта, F Е і F блізкія, што адкрыць файл, друк у файл, і 35 00:01:47,450 --> 00:01:48,440 зачыніць файл. 36 00:01:48,440 --> 00:01:49,690 Мы можам выкарыстоўваць іх наступным чынам. 37 00:01:49,690 --> 00:01:52,110 38 00:01:52,110 --> 00:01:58,240 >> Файлаў, ва ўсіх вялікіх літарах, што некалькі з цікаўнасць ў C, файл запускаецца Еореп 39 00:01:58,240 --> 00:02:03,020 цытата канец цытаты і зараз назва файл, скажам, students.CSV, але я не мог 40 00:02:03,020 --> 00:02:08,150 называюць яго чым заўгодна, коска, і цяпер я збіраецца пазначыць адзін ш ўнутры 41 00:02:08,150 --> 00:02:09,390 падвойных двукоссяў. 42 00:02:09,390 --> 00:02:13,290 Вт, як вы ўжо здагадаліся ўжо, азначае, што Еореп павінны адкрыць гэты файл 43 00:02:13,290 --> 00:02:17,360 называецца Students.CSV для напісання, так што мы можам рэальна зэканоміць некаторыя 44 00:02:17,360 --> 00:02:19,370 Змест да яго. 45 00:02:19,370 --> 00:02:23,080 >> Давайце наступны праверка, калі файл ня роўны NULL. 46 00:02:23,080 --> 00:02:25,860 Таму што калі гэта так, то ёсць, верагодна, пайшло не так у гэтым выпадку мы 47 00:02:25,860 --> 00:02:28,340 ня варта працягваць, каб паспрабаваць друкаваць нічога да яго. 48 00:02:28,340 --> 00:02:33,400 Але калі гэта не нулявы, то ўсярэдзіне Фігурныя дужкі я збіраюся ітэрацыі 49 00:02:33,400 --> 00:02:38,030 ад я роўны 0 да СТУДЭНТАЎ, і я збіраюся 50 00:02:38,030 --> 00:02:40,180 павялічыць я на кожнай ітэрацыі. 51 00:02:40,180 --> 00:02:45,750 А ўнутры гэтай завесы, я збіраюся fprintf так, каб друк у файл - 52 00:02:45,750 --> 00:02:47,940 спецыяльна адзін Я ўжо адкрыты - 53 00:02:47,940 --> 00:02:54,650 Радок, выглядае наступным чынам% З,% ы касая рыса п блізка цытата. 54 00:02:54,650 --> 00:02:58,790 >> А цяпер я хачу, каб падключыць да кожнага з гэтыя запаўняльнікі фактычныя значэння 55 00:02:58,790 --> 00:03:03,390 імя студэнта і дома з дапамогай аператара кропкі. 56 00:03:03,390 --> 00:03:10,030 Студэнты кранштэйны i.name, студэнты Кранштэйны i.house блізкія дужка 57 00:03:10,030 --> 00:03:11,230 кропка з коскі. 58 00:03:11,230 --> 00:03:16,180 Цяпер ніжэй гэтага цыкл, я проста буду называць FClose файла для таго, 59 00:03:16,180 --> 00:03:18,520 у канчатковым рахунку зачыніць файл. 60 00:03:18,520 --> 00:03:21,360 >> Цяпер, калі я запусціць гэтую праграму, я не павінен на самай справе бачу нічога на 61 00:03:21,360 --> 00:03:25,010 экран, але я павінен мець пасля запуску гэтая праграма файл з імем 62 00:03:25,010 --> 00:03:29,130 Students.CSV ў тым жа каталогу, што Я запускаю каманду ў тым, што варта 63 00:03:29,130 --> 00:03:32,480 ўтрымліваць коску Спіс значэнняў. 64 00:03:32,480 --> 00:03:34,790 Давайце зірнем. 65 00:03:34,790 --> 00:03:41,690 >> Зрабіць Структуры 1. / Structs1 студэнта назваць, скажам, Давіда, 66 00:03:41,690 --> 00:03:43,140 ён будзе жыць у Mather. 67 00:03:43,140 --> 00:03:46,890 Імя студэнта, скажам, Ларэн, яна будзе жыць у Леверетта. 68 00:03:46,890 --> 00:03:50,800 Імя студэнта, скажам, Роб, ён будзе жыць у Kirkland. 69 00:03:50,800 --> 00:03:54,050 Цяпер, зноў жа, як і чакалася, нічога не з'яўляецца , Адбылося, але дазвольце мне 70 00:03:54,050 --> 00:03:58,790 ісці наперад у камандным радку і тыпу г рэдагаваць students.CSV ў надзеі, што 71 00:03:58,790 --> 00:04:00,850 што файл сапраўды існуе. 72 00:04:00,850 --> 00:04:07,010 >> Gedit students.CSV ENTER, і сапраўды, заўважыць, што файл, які змяшчае чыста 73 00:04:07,010 --> 00:04:11,320 тэкст, але тэкст праз коску для кожнага поля, сапраўды існуе. 74 00:04:11,320 --> 00:04:14,530 І калі б мы выкарысталі, ня CS50 Прыбор, але больш знаёмыя з Mac або 75 00:04:14,530 --> 00:04:18,080 ПК, то атрымліваецца, што мы маглі б сапраўды адкрыць гэты файл CSV з больш 76 00:04:18,080 --> 00:04:20,400 знаёмыя праграмы, як Excel або Numbers. 77 00:04:20,400 --> 00:04:22,906