>> SPEAKER 1: Lad os skrive et program, beder brugeren om navne og
huse af tre studerende.
Men snarere end blot udskrive deres navne og huse til skærmen, lad os
i stedet gemmer informationen på disken.
Med andre ord, lad os skabe, siger en CSV fil, kommaseparerede værdier
der er faktisk bare en tekstfil, programmer som Excel eller Numbers
kan åbne, og effektivt redde dem navne og huse permanent, således at
vi kan gennemgå dem senere.
>> For at gøre det, så lad os først tage et kig på nogle standardtekst kode, som jeg har
begyndte med allerede.
Bemærk først, at blandt de overskrifter up toppen er nu standard lib.h som
tilfældigvis har nogle funktioner i forbindelse til fil I / O, fil input og output.
Bemærk, at jeg også har erklæret en konstant kaldet studerende -
i alle caps - hvis værdi er hårdt kodet som tre.
Bemærk nu, at inde i mit hoved program, jeg erklære en vifte af
str. tre ved hjælp af denne konstant kaldet STUDERENDE hver, hvis medlemmer er
skriv studerende.
>> Husk nu, at en elev vil vi definere som har et navn og et hus både
der er strenge Pr. denne erklæring instruerer, prik h.
Nu tilbage i structs1.c, bemærke, at jeg har en for-løkke her, der kommer til
gentage fra nul op til tre.
Det kommer til at bede mig om en elevs navn og en studerende hus
igen og igen og igen.
>> Så i bunden af ​​dette program, bemærke, at jeg har en anden for-løkke
der kommer til at befri den i'te studerendes navn og den i'te studerendes hus i en
tilsvarende konstrueret sløjfe.
For at være sikker på, kunne vi kombinere disse sløjfer ind i bare én, men jeg ønskede at
har nogle bestemte segmenter af kode af hensyn til diskussion her.
>> Nu i mellem dem, for loops, lad os faktisk har en anden, og denne ene er
formål i livet er at faktisk gemme alle af disse navne og huse, der er
øjeblikket i RAM til disk i form af kommaseparerede værdier.
At gøre det, vi kommer til at bruge tre nye funktioner -
F åben, F printf og F tæt på, som åbne en fil, udskrive til en fil, og
at lukke en fil.
Vi kan bruge dem som følger.
>> FILE i alle caps, hvilket er noget af en nysgerrighed i C, bliver FIL fopen
citat citat slut og nu et navn til fil, siger, students.CSV, men jeg kunne
kalder det mest noget, komma og nu er jeg kommer til at angive en enkelt w inde
af anførselstegn.
W, som du måske har gættet allerede, betyder, at fopen skal åbne denne fil
kaldet Students.CSV for at skrive så at vi faktisk kan spare nogle
indhold til det.
>> Lad os næste kontrol, hvis fil er ikke lig med nul.
For hvis det er, har noget sikkert gået galt i hvilket tilfælde vi
bør ikke fortsætte for at prøve at udskrive noget til det.
Men hvis det ikke er null, så indersiden af krøllede parenteser jeg har tænkt mig at gentage
fra i lig 0 på op til STUDERENDE, og jeg har tænkt mig at
tilvækst i på hver iteration.
Og inde i denne løkke, vil jeg fprintf så at udskrive til en fil -
især det ene Jeg har allerede åbnet -
en streng, der ligner denne% s,% s backslash n tæt citat.
>> Og nu vil jeg sætte ind på hver af disse pladsholdere de faktiske værdier
af en elevs navn og et hus ved hjælp af dot operatør.
Studerende beslag i.name, studerende beslag i.house luk paren
semikolon.
Nu under denne for-løkke, jeg er simpelthen vil kalde fclose af fil for
til sidst at lukke filen.
>> Nu når jeg køre dette program, skal jeg ikke faktisk se noget på
skærmen, men jeg skulle have efter at have kørt dette program en fil kaldet
Students.CSV i samme mappe som Jeg køre kommandoen i at skulle
indeholde en kommasepareret listen over værdier.
Lad os tage et kig.
>> Gør structs 1.. / Structs1 studerendes navn, lad os sige David,
han vil leve i Mather.
Studerendes navn, lad os sige, Lauren, hun vil leve i Leverett.
Studerendes navn, lad os sige, Rob, han vil leve i Kirkland.
Nu igen, som forventet, vises der intet at være sket, men lad mig
gå videre ved kommandoprompten og type g redigere students.CSV i håb om at
filen faktisk eksisterer.
>> Gedit students.CSV ENTER, og ja, bemærker, at en fil, der indeholder rent
tekst, men tekst adskilt af kommaer for hvert felt, eksisterer faktisk.
Og hvis vi bruger, ikke CS50 apparat, men en mere velkendt Mac eller
PC, viser det sig, at vi kunne faktisk åbne denne CSV-fil med en mere
velkendt program som Excel eller Numbers.