>> Выступоўца 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.