>> Виступаючий 1: Давайте напишемо програму, яка запитує у користувача імена і
будинку трьох студентів.
Але замість того, просто роздрукувати їх імена і будинків до екрану, давайте
замість зберегти цю інформацію на диск.
Іншими словами, давайте створимо, скажімо, CSV файл, для значень, розділених комами,
які насправді просто текстовий файл, який програм, як Excel або Numbers
можна відкрити, і ефективно врятувати тих, Імена і вдома постійно, так що
ми можемо переглядати їх пізніше.
>> Щоб зробити це, давайте спочатку поглянемо на деякі стандартний код, що у мене є
почалося з вже.
Зверніть увагу, що серед перших заголовків нагорі тепер стандарт lib.h які
трапляється, є деякі функції, пов'язані подати введення-виведення, введення / файлу і вихід.
Зверніть увагу, що я також заявив постійна називається СТУДЕНТИ -
великими літерами - значення якого жорстко запрограмований як три.
Зверніть увагу тепер, що всередині моя головна Програма, я оголошую масив
Розмір три допомогою цієї константи з ім'ям СТУДЕНТИ кожен з членів, має
введіть студентів.
>> Згадаймо тепер, що студент ми визначимо як мають ім'я і будинок обидва
які є рядками, як за це Декларація наказує, точка ч.
Тепер повернемося в structs1.c, помітили, що я мають цикл тут, що збирається
ітерації від нуля до трьох.
Це збирається підказують мені для студента Ім'я та будинок студента
знову і знову і знову.
>> Потім в нижній частині цієї програми помітити, що у мене є ще один цикл
що збирається звільнити г-й студента Ім'я та будинок-й студентський в
Аналогічно будується цикл.
Треба відзначити, що ми могли б об'єднати ці петлі в один, але я хотів би
є деякі явні сегменти коду заради обговорення тут.
>> Зараз у між тими, для петель, давайте насправді є ще один, і цей'S
мета в житті насправді зберегти всі з цих імен і будинків, які
В даний час в оперативній пам'яті на диск у вигляді із значень, розділених комами.
Щоб зробити це, ми збираємося використовувати три нових функції -
F відкрито, F Е і F близькі, що відкрити файл, друк у файл, і
закрити файл.
Ми можемо використовувати їх таким чином.
>> Фото, у всіх заголовних буквах, що кілька з цікавість в C, файл запускається Еореп
цитата кінець цитати і тепер назву файл, скажімо, students.CSV, але я не міг
називають його чим завгодно, кома, і тепер я збирається вказати один ш всередині
подвійних лапок.
Вт, як ви вже здогадалися вже, означає, що Еореп мають відкрити цей файл
називається Students.CSV для написання, так що ми можемо реально заощадити деякі
Зміст до нього.
>> Давайте наступне перевірка, якщо файл НЕ дорівнює NULL.
Бо якщо це так, то є, ймовірно, пішло не так в цьому випадку ми
не слід продовжувати, щоб спробувати друкувати нічого до нього.
Але якщо це не нульовий, то всередині Фігурні дужки я збираюся ітерації
від я дорівнює 0 до СТУДЕНТІВ, і я збираюся
збільшити я на кожній ітерації.
А всередині цієї петлі, я збираюся fprintf так, щоб друк в файл -
спеціально один Я вже відкритий -
Рядок, виглядає наступним чином% С,% и коса риса п близько цитата.
>> А тепер я хочу, щоб підключити до кожного з ці заповнювачі фактичні значення
імені студента і вдома за допомогою оператора точки.
Студенти кронштейн i.name, студенти Кронштейн i.house близькі дужка
крапка з комою.
Тепер нижче цього цикл, я просто буду називати FClose файлу для того,
в кінцевому рахунку закрити файл.
>> Тепер, коли я запустити цю програму, я не повинен насправді бачу нічого на
екран, але я повинен мати після запуску ця програма файл з ім'ям
Students.CSV в тому ж каталозі, що Я запускаю команду в тому, що слід
містити кому Список значень.
Давайте поглянемо.
>> Зробити Структури 1. / Structs1 студента назвати, скажімо, Давида,
він житиме в Mather.
Ім'я студента, скажімо, Лорен, вона буде жити в Леверетт.
Ім'я студента, скажімо, Роб, він житиме в Kirkland.
Тепер, знову ж, як і очікувалося, нічого не з'являється , Відбулося, але дозвольте мені
йти вперед в командному рядку і типу г редагувати students.CSV в надії, що
що файл дійсно існує.
>> Gedit students.CSV ENTER, і дійсно, помітити, що файл, що містить чисто
текст, але текст через кому для кожного поля, дійсно існує.
І якби ми використовували, що не CS50 Прилад, але більше знайомі з Mac або
ПК, то виходить, що ми могли б дійсно відкрити цей файл CSV з більш
знайомі програми, як Excel або Numbers.