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.