>> Выступающий 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.