>> Spreker 1: Kom ons skryf 'n program wat vra die gebruiker om die name en
huise van drie studente.
Maar eerder as om net uit te druk hul name en huise na die skerm, laat
plaas behalwe dat inligting na die skyf.
Met ander woorde, laat ons ', sĂŞ, 'n CSV lĂŞer, vir kommas geskei waardes,
wat eintlik net 'n teks lĂŞer wat programme soos Excel of Nommers
kan oopmaak, en effektief red diegene name en huise permanent sodat
ons kan dit later hersien.
>> Om dit te doen, laat ons eers 'n blik op sommige boiler-kode wat ek
begin met reeds.
Let eerste wat onder die kop up top is nou standaard lib.h wat
gebeur 'n paar funksies wat verband hou met 'n I / O, lĂŞer toevoer en afvoer te dien.
Let daarop dat ek het ook verklaar 'n konstante genoem studente -
in hoofletters - waarvan die waarde hard gekodeer as drie.
Let nou dat die binnekant van my program, ek verklaar 'n verskeidenheid van
grootte drie met behulp van die konstante genoem Studente elk van wie se lede is van
tik-studente.
>> Onthou nou dat 'n student sal ons definieer as 'n naam en 'n huis wat albei
wat stringe soos per die verklaring opdrag, dot h.
Nou terug in structs1.c, kennis dat ek het 'n lus vir die hier wat gaan
Itereer van nul tot drie.
Dit gaan my gevra vir 'n student se naam en 'n student se huis
weer en weer en weer.
>> Dan aan die onderkant van hierdie program, sien dat Ek het nog 'n for-lus
wat gaan bevry die i student se naam en die i student se huis in 'n
Net so gebou lus.
Om seker te wees, kan ons die loops kombineer in net een nie, maar ek wou
het 'n paar verskillende segmente van die kode ter wille van die bespreking hier.
>> Nou tussen diĂŠ vir loops, laat ons eintlik 'n ander, en hierdie een se
doel in die lewe is om werklik al red van hierdie name en huise wat
tans in die geheue op skyf in die vorm van kommas geskei waardes.
Om dit te doen, gaan ons om te gebruik drie nuwe funksies -
F oop, F printf, en F naby, wat 'n lĂŞer oop te maak, druk na 'n lĂŞer, en
sluit 'n lĂŞer.
Ons kan hulle gebruik soos volg.
>> FILE, in hoofletters, wat is ietwat van ' 'n nuuskierigheid in C, kry FILE fopen
quote unquote en nou 'n naam vir die dien, sĂŞ, students.CSV, maar ek kon
noem dit die meeste nie, komma en nou is ek gaan spesifiseer 'n enkele w binnekant
dubbele aanhalingstekens.
W, as jy dalk al kon raai, beteken dat fopen moet hierdie lĂŞer oop te maak
genoem Students.CSV vir die skryf van so dat ons eintlik kan spaar
inhoud om dit te.
>> Kom ons volgende tjek as lĂŞer is nie gelyk aan nul.
Want as dit is, iets het waarskynlik verkeerd geloop het in welke geval ons
moet nie voortgaan om te probeer enigiets te druk om dit te.
Maar as dit is nie nul is, dan binnekant van die krulhakies ek gaan Itereer
van i gelyk aan 0 op tot studente, en ek gaan
inkrementeer i op elke iterasie.
En binnekant van die loop, gaan ek fprintf so te druk na 'n lĂŞer -
spesifiek die een Ek het reeds geopen -
'n string wat lyk soos hierdie% s,% s backslash n noue kwotasie.
>> En nou wil ek te prop in elkeen van diegene plekhouers die werklike waardes
van 'n student se naam en 'n huis gebruik van die dot-operateur.
Studente bracket i.name, studente bracket i.house naby hakie
semi-kolon.
Nou onder om die lus, ek is eenvoudig gaan fclose lĂŞer te noem in volgorde
om uiteindelik maak die lĂŞer.
>> Nou toe ek hierdie program, moet ek nie eintlik enigiets te sien op die
skerm, maar ek moet na die uitvoer van hierdie program 'n lĂŞer genaamd
Students.CSV in dieselfde gids wat Ek loop die opdrag in dat indien
bevat 'n komma geskei lys van waardes.
Kom ons neem 'n blik.
>> Maak structs 1. / Structs1 student se noem, kom ons sĂŞ David,
hy sal woon in Mather.
Student se naam, kom ons sĂŞ, Lauren, sy sal woon in Leverett.
Student se naam, kom ons sĂŞ, Rob, hy sal woon in Kirkland.
Nou, weer, soos verwag, niks verskyn gebeur het nie, maar laat my
gaan voort by die opdrag prompt en tik g wysig students.CSV in die hoop dat
die lĂŞer inderdaad bestaan.
>> Gedit students.CSV ingaan en inderdaad, kennis dat 'n lĂŞer met suiwer
teks, maar die teks geskei deur kommas vir elke veld, bestaan ââwel.
En as ons gebruik, nie die CS50 toestel, maar 'n meer bekende Mac of
PC, dit blyk dat ons kan inderdaad Maak die CSV-lĂŞer met 'n meer
vertroud program soos Excel of nommers.