>> SPEAKER 1: Да се ​​напише програма, която подсказва на потребителя за имената и
къщи на трима студенти.
Но вместо просто да отпечатате си имена и къщи до екрана, нека
вместо да спаси тази информация на диск.
С други думи, нека да създадем, да речем, CSV файл, разделени със запетая стойности,
която всъщност е просто един текстов файл, който програми като Excel или Numbers
може да се отвори, и ефективно да спаси тези, имена и къщи за постоянно, така че
можем да ги прегледате по-късно.
>> За да направите това, нека първо да разгледаме някои шаблон код, който съм
Започнах с вече.
Забележете първо, че сред заглавията до върха сега е стандартна lib.h които
се случва да има някои функции, свързани да подаде I / O, файлов вход и изход.
Забележете, че аз също съм обявена константа, наречена СТУДЕНТИ -
във всички капачки - чиято стойност е трудно кодирани като три.
Забележете, че сега във вътрешността на основната ми програма, аз съм за обявяване на масив от
размер на три използват тази константа, наречена СТУДЕНТИ всеки от чиито членове са на
въведете студенти.
>> Спомнете си сега, че един студент ще се определи като има име и къща и двете
които са низове, както на този декларация инструктира, точка з.
Сега обратно в structs1.c, забележите, че аз са за линия тук, че ще
обхождане от нула до три.
Той ще ме пита за ученика име и къща на студента
отново и отново и отново.
>> След това, в края на тази програма, забележите, че имам още един за линия
че няма да освободи студента Ith име и къща на студента Ith в
конструиран по подобен начин контур.
За да сте сигурни, бихме могли да се съчетаят тези примки само в една, но аз исках да
има някои отделни сегменти на код в името на обсъждане тук.
>> Сега между тези, за примки, нека всъщност има друг, и този е
цел в живота е да се действително да запишете всичко, на тези имена и къщи, които са
В момента в RAM на диска под формата от разделени със запетая стойности.
За да направите това, ние ще използваме три нови функции -
F отворена, F ФОРМАТ, и F близки, които отворите файл, отпечатате файл, и
затворете файла.
Ние можем да ги използват, както следва.
>> FILE, във всички капачки, което е малко на любопитство в C, FILE получава Fopen
в кавички и сега име за подаде, да речем, students.CSV, но бих могъл
го наричат ​​почти всичко, запетая и сега съм ще се определя само една единствена w вътре
на двойни кавички.
W, както може би вече сте предположил, означава, че трябва да отвори FОтваряне на този файл
наречен Students.CSV за писане така че всъщност можем да спестите малко
съдържание към него.
>> Нека следващата проверка, ако файл не е равно на нула.
Защото, ако това е нещо, което има най-вероятно объркало в който случай ние
Не трябва да продължавате да се опита да отпечатате всичко, за да го.
Но ако това не е нула, а след това вътре в фигурни скоби Отивам да превъртите
от I е равна на 0 за до СТУДЕНТИ, и аз отивам да
нарастване и на всяка итерация.
И вътре в този цикъл, аз отивам да се fprintf така че да отпечатвате във файл -
специално този Аз вече отвори -
низ, който изглежда по следния начин% S,% S наклонена черта н близо цитат.
>> И сега искам да включите към всеки един от тези контейнери действителните стойности
на името на студента и къща посредством оператора точка.
Студентите скоба i.name, студенти скоба i.house близки Paren
точка и запетая.
Сега под тази за линия, аз съм просто Ще се обадя на неуспешно на файл, за да
в крайна сметка да затворите файла.
>> Сега, когато стартирате тази програма, аз не трябва да всъщност виждам нищо на
екран, но аз трябва да има след пускането тази програма файл, наречен
Students.CSV в същата директория, че I изпълните командата в това трябва
съдържа, разделени със запетая списък от стойности.
Нека хвърлим един поглед.
>> Направи structs 1. / Structs1 студент име, нека да кажем, David,
той ще живее в Mather.
Име Студентски, нека кажем, Lauren, тя ще живее в Leverett.
Име Студентски, нека кажем, Rob, той ще живее в Kirkland.
Сега, отново, както се очаква, нищо не се появява да се случи, но нека ме
давай напред в командния ред и вида ж редактиране students.CSV с надеждата, че
този файл наистина съществува.
>> Gedit students.CSV ENTER, а всъщност, забележите, че един файл, съдържащ чисто
текст, но текста, разделени със запетая за всяко поле, наистина съществува.
И ако сме използвали, не CS50 уред, но на по-запознати Mac или
PC, се оказва, че ние наистина може отворите този CSV файл с повече
запознати програма като Excel или Numbers.