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.