>> Oratè 1: Se pou yo ekri yon pwogram ki envit itilizatè a pou non ak
kay nan twa elèv yo.
Men, olye ke sèlman enprime soti yo non ak kay nan ekran an, se pou yo
olye pou konsève pou enfòmasyon ke yo gen kapasite.
Nan lòt mo, se pou yo kreye, di, yon CSV ranpli, pou vigil valè separe,
ki se aktyèlman jis yon dosye tèks ki pwogram tankou Excel oswa Numbers
kapab louvri, epi efektivman delivre tout moun non ak kay pou tout tan se konsa ke
nou ka revize yo pita.
>> Pou fè sa, se pou yo premye pran yon gade nan kèk kòd boilerplate ke mwen te
te kòmanse avèk deja.
Avi premye ki nan mitan tèt yo moute tèt se kounye a estanda lib.h ki
k ap pase nan gen kèk fonksyon ki gen rapò pote Mwen / O, D 'dosye ak pwodiksyon.
Remake Mwen te tou te deklare yon konstan rele elèv yo -
nan tout bouchon - ki gen valè se difisil kode kòm twa.
Avi kounye a ke andedan nan prensipal mwen an pwogram, mwen deklare yon etalaj de
gwosè twa lè l sèvi avèk ki konstan rele ELÈV YO chak nan manm ki gen se nan
tape elèv yo.
>> Sonje byen kounye a ke yon elèv nou pral defini tankou ke li gen yon non ak yon kay tou de
ki se strings tankou pou chak sa a deklarasyon bay enstriksyon, dot h.
Koulye a, tounen nan structs1.c, remake ke mwen gen yon pou bouk isit la ki nan ale nan
repňte soti nan zewo jiska twa.
Li ale nan vit m 'pou elèv yon an Non ak tout fanmi yon elèv
ankò, li ankò e ankò.
>> Lè sa a, nan pati anba nan pwogram sa a, remake ke mwen gen yon lòt pou bouk
ki nan ale nan gratis elèv la on la Non ak kay elèv la on la nan yon
Menm jan an tou konstwi bouk.
Pou ka si, nou te ka konbine sa yo pasan nan sèlman yon sèl, men mwen te vle
gen kèk segments distenk nan kòd pou dedomajman pou la nan diskisyon isit la.
>> Koulye a, nan ant moun ki pou pasan, se pou yo aktyèlman gen yon lòt, ak yon sèl sa a nan
objektif nan lavi se aktyèlman delivre tout nan sa yo non ak kay ki gen
kounye a nan RAM ki gen kapasite nan fòm lan nan vigil valè separe.
Pou fè sa, nou pral sèvi ak twa nouvo fonksyon -
F louvri, F printf, ak F fèmen, ki louvri yon dosye, ekri ak lèt ​​detache nan yon dosye, ak
fèmen yon dosye.
Nou ka sèvi ak yo jan sa a.
>> DOSYE, nan tout bouchon, ki se yon ti jan nan yon kiryozite nan C, DOSYE vin fopen
quote unquote e kounye a, yon non pou la pote, di, students.CSV, men mwen te kapab
rele l 'anyen pi plis, vigil e kounye a, mwen se ale nan presize yon sèl w andedan
nan quotes doub.
W, kòm ou ta ka genyen dvine deja, vle di ke fopen ta dwe louvri sa a ranpli
rele Students.CSV pou ekri pou ke nou ka aktyèlman sove kèk
sa a li.
>> Se pou yo pwochen chèk si dosye se pa egal a nil.
Paske si li se, yon bagay gen pwobableman ale mal nan ka sa a nou
pa ta dwe ale nan eseye ekri ak lèt ​​detache anyen nan li.
Men, si li pa nil, lè sa a andedan nan la aparèy òtopedik Curly Mwen pral repňte
soti nan mwen egal 0 sou jiska elèv yo, ak Mwen pral
enkreman mwen sou chak iterasyon.
Ak andedan sa a bouk, mwen pral jwenn fprintf konsa tankou ekri ak lèt ​​detache nan yon dosye -
espesyalman yon sèl la Mwen deja louvri -
yon kòd ki sanble ak sa a s%,% s antislach n fèmen quote.
>> Epi, koulye a mwen vle ploge nan nan chak nan sa yo placeholders valè yo reyèl
nan non yon elèv, epi yon kay lè l sèvi avèk operatè a dot.
Elèv yo bracket i.name, elèv yo paren bracket i.house fèmen
semi-kolon.
Koulye a, pi ba a sa a pou bouk, mwen se tou senpleman ale nan rele fkloz nan dosye yo nan lòd
finalman fèmen dosye a.
>> Koulye a, lè m 'kouri pwogram sa a, mwen pa ta dwe aktyèlman wè anyen sou la
ekran, men mwen ta dwe gen apre kouri pwogram sa a yon dosye rele
Students.CSV nan anyè a menm ki Mwen kouri lòd la nan ki ta dwe
genyen yon vigil separe lis valè.
Ann pran yon gade.
>> Fè strukt 1. / Elèv structs1 a non, kite a di David la,
l ap viv nan Mather.
Non Elèv la, se pou yo di, Lauren, li pral viv nan LEVERETT.
Non Elèv la, se pou yo di, Rob, l ap viv nan Kirkland.
Koulye a, ankò, jan yo espere, pa gen anyen parèt yo te ki te pase, men kite m '
ale pi devan nan èd memwa a bay lòd ak kalite g modifye students.CSV nan espere ke
ki dosye tout bon egziste.
>> Jdi students.CSV MAKE, ak tout bon, remake ke yon dosye ki gen piman
tèks, men tèks ki separe pa vigil pou chak jaden, tout bon egziste.
Men, si nou tout nou te lè l sèvi avèk, pa CS50 nan aparèy, men yon Mac plis abitye oswa
PC, li vire soti ke nou te kapab tout bon louvri sa a ranpli CSV ak yon plis
pwogram abitye tankou Excel oubyen nimewo yo.