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