1 00:00:00,000 --> 00:00:07,810 2 00:00:07,810 --> 00:00:09,840 >> JASON Hirschhorn: Velkomin, allir, að viku 6. 3 00:00:09,840 --> 00:00:14,790 Ég er fús til að sjá ykkur öll á lífi og vel eftir Quiz 0, vegna þess að ég veit að 4 00:00:14,790 --> 00:00:15,810 var dálítið gróft. 5 00:00:15,810 --> 00:00:18,370 En sem betur fer, er allt gerði ótrúlega vel. 6 00:00:18,370 --> 00:00:21,680 Og svo er það dásamlegt. 7 00:00:21,680 --> 00:00:25,840 Ef þú ert í kafla mína, hef ég gefið mest af þér aftur Skyndipróf nú þegar. 8 00:00:25,840 --> 00:00:28,050 >> A par af þér, ég er að hitta eftir tegund. 9 00:00:28,050 --> 00:00:32,360 Og ef þú ert í framhaldi nemandi og þú hefur ekki fengið prófið aftur 10 00:00:32,360 --> 00:00:35,490 enn, TF þinn er sennilega að vinna á það og yfirferð það, og vilja fá hana aftur 11 00:00:35,490 --> 00:00:36,490 til þín fljótlega. 12 00:00:36,490 --> 00:00:39,650 Svo eftirnafn nemendur mínir sem eru horfa núna - vonandi lifa - 13 00:00:39,650 --> 00:00:42,880 Ég mun fá Skyndipróf skömmu eins vel. 14 00:00:42,880 --> 00:00:45,670 >> Dagskrá okkar í dag er sem hér segir. 15 00:00:45,670 --> 00:00:50,170 Fyrst, við erum að fara að fara yfir og auðlindir sem CS50 veitir þér. 16 00:00:50,170 --> 00:00:54,590 Við ætlum að fara yfir Quiz 0 næst, og Ég svara öllum spurningum neinn 17 00:00:54,590 --> 00:00:57,360 hefur um sérstök vandamál. 18 00:00:57,360 --> 00:01:02,050 Og þá munum við vera að fara yfir skrá I / O og Heimadæmi 5. 19 00:01:02,050 --> 00:01:07,360 Þeim síðustu tvo hluti mun taka upp megnið af kafla í dag. 20 00:01:07,360 --> 00:01:11,680 >> Ég setti þessa lista upp í hverri viku sem áminning til ykkar allra, en af ​​kjarna 21 00:01:11,680 --> 00:01:14,650 kafla, höfum við aðeins 90 mínútur - við eru ekki fær um að ná allt sem ég 22 00:01:14,650 --> 00:01:16,280 myndi elska að ná ykkur. 23 00:01:16,280 --> 00:01:21,170 En við höfum tonn af auðlindum fyrir þú að teikna á eins og þú fá að vita 24 00:01:21,170 --> 00:01:24,000 efni og vinna með vandamál þitt setur. 25 00:01:24,000 --> 00:01:30,810 >> A áminning um að ég hef á netinu texta kassi, setja upp fyrir þig til að fylla út ef þú 26 00:01:30,810 --> 00:01:33,250 hefur einhverjar athugasemdir um mig, bæði jákvæð og 27 00:01:33,250 --> 00:01:35,180 uppbyggjandi, um kafla. 28 00:01:35,180 --> 00:01:38,600 Að slóðin er rétt niður hér. 29 00:01:38,600 --> 00:01:43,250 Svo skaltu taka a augnablik ef þú hefur einhverjar viðbrögð, hvort við kafla, 30 00:01:43,250 --> 00:01:48,030 eða eftir, eða eftir að þú horfa á vídeó á netinu, til að gefa mér álit þitt. 31 00:01:48,030 --> 00:01:52,100 Ég þakka virkilega allir og allt það. 32 00:01:52,100 --> 00:01:55,730 >> Þannig að ég hef verið að hafa lítil samtöl með fullt af mínum 33 00:01:55,730 --> 00:01:59,350 nemendur alla vikuna - og ég hendi aftur Skyndipróf, tala um 34 00:01:59,350 --> 00:02:01,480 Auðvitað sjá hvernig þú ert að gera. 35 00:02:01,480 --> 00:02:05,120 Og eitt þema hefur komið upp aftur og yfir í að tala um - í 36 00:02:05,120 --> 00:02:05,660 einkum - 37 00:02:05,660 --> 00:02:07,710 vandamál setur. 38 00:02:07,710 --> 00:02:13,090 Og ég hef encapsulated að þema á borð núna. 39 00:02:13,090 --> 00:02:16,630 >> Í meginatriðum, það er munur milli beygja í eitthvað sem er 40 00:02:16,630 --> 00:02:19,590 gert á réttan hátt og eitthvað sem vel er gert. 41 00:02:19,590 --> 00:02:22,920 Flestir hafa verið að gera frábær hvað varðar nákvæmni - 42 00:02:22,920 --> 00:02:25,460 5 eða 4 er á öllum psets. 43 00:02:25,460 --> 00:02:27,930 Flestir eru að fá þá allan tímann. 44 00:02:27,930 --> 00:02:31,150 >> Hins vegar, bara vegna þess að þú hefur gert eitthvað rétt þýðir ekki að þú hafir 45 00:02:31,150 --> 00:02:34,450 gert eitthvað sem glæsilegur, eða skilvirkan hátt, eða eins eðlilega og þú 46 00:02:34,450 --> 00:02:35,270 hefði getað gert það. 47 00:02:35,270 --> 00:02:36,790 Og það er það sem hönnun - 48 00:02:36,790 --> 00:02:39,230 og í minna mæli, stíl - 49 00:02:39,230 --> 00:02:40,450 ása eru fyrir. 50 00:02:40,450 --> 00:02:45,130 Svo er ég að ýta þér allt, og önnur TFS eru að þrýsta ykkur, að ekki aðeins snúa 51 00:02:45,130 --> 00:02:48,320 í hlutum sem eru rétt, en snúa í þeim hlutum sem eru á dulmáli vel. 52 00:02:48,320 --> 00:02:53,060 >> Ekki að gera óþarfa fyrir lykkjur, ekki reikna breytur ef það 53 00:02:53,060 --> 00:02:53,800 þú þarft ekki að. 54 00:02:53,800 --> 00:02:58,520 Til dæmis, að leita aftur til Heimadæmi 4, þegar setja múrsteina á 55 00:02:58,520 --> 00:03:03,070 skjár, hver róður - hvert múrsteinn í gefið röð hefur sömu þýðingu og y-hnit - 56 00:03:03,070 --> 00:03:04,390 í sömu hæð samræma. 57 00:03:04,390 --> 00:03:07,930 >> Svo að y-hnit þarf ekki að reiknast inn í innri 58 00:03:07,930 --> 00:03:11,070 hreiður fyrir lykkju sem þú notaðir líklega að setja þær múrsteinn á skjánum. 59 00:03:11,070 --> 00:03:14,030 Það þarf bara að reikna á hverjum tími til þú skiptir röð, eða 60 00:03:14,030 --> 00:03:15,200 flutti niður röð. 61 00:03:15,200 --> 00:03:19,760 Svo segja ef það eru 10 múrsteinn í róður, hvert múrsteinn er hægt að hafa sama 62 00:03:19,760 --> 00:03:22,260 y-hnit og að y-hnit getur bara verið reiknað 63 00:03:22,260 --> 00:03:23,550 eitt skipti fyrir öll af þeim. 64 00:03:23,550 --> 00:03:27,810 >> Það þarf ekki að reikna 10 sinnum, né heldur að útreikningur þörf 65 00:03:27,810 --> 00:03:30,220 að gerast í raun Virka Hringja - 66 00:03:30,220 --> 00:03:33,020 nýja gracked virka símtalinu. 67 00:03:33,020 --> 00:03:37,820 Þannig að ef það var dálítið ruglingslegt fyrir þú, meira generically, það sem 68 00:03:37,820 --> 00:03:40,730 þurfa ekki að gerast í hvert einasta skipti þú ferð í gegnum for lykkju ætti ekki að vera 69 00:03:40,730 --> 00:03:42,900 setja inni í for lykkju, og ætti ekki að gerast í hvert skipti sem þú ferð 70 00:03:42,900 --> 00:03:44,080 gegnum for lykkju. 71 00:03:44,080 --> 00:03:49,270 >> Önnur góð hönnun dæmi sáum í 3. viku í 15, getur þú haldið 72 00:03:49,270 --> 00:03:50,500 utan um núll. 73 00:03:50,500 --> 00:03:53,600 Svo þegar þú frumstilla borð, þér spara - í alþjóðlegum breytu, kannski - 74 00:03:53,600 --> 00:03:56,140 X og Y-hnit núll. 75 00:03:56,140 --> 00:03:57,520 Og þá þegar þú - 76 00:03:57,520 --> 00:04:00,310 Færa fallinu þínu, þegar þú gerir vel færa, þú uppfærir 77 00:04:00,310 --> 00:04:02,040 staðsetning núlli. 78 00:04:02,040 --> 00:04:06,240 >> Það myndi spara þér frá að þurfa að gera hreiður fyrir lykkjur að líta í gegnum 79 00:04:06,240 --> 00:04:10,700 borð á hverjum tíma færa fallinu þínu og finna núll, eða finna flísar, 80 00:04:10,700 --> 00:04:12,460 og þá athuga hvað er við hliðina á henni. 81 00:04:12,460 --> 00:04:16,329 Í staðinn, þú um staðsetningu núll, getur þú bara líta ofan, neðan, 82 00:04:16,329 --> 00:04:21,160 og til vinstri og hægri á því, að finna spjaldinu sem þú varst að leita að. 83 00:04:21,160 --> 00:04:24,970 >> Svo í skilmálar af the programs við erum að skrifa, eru þeir aldrei nógu stór 84 00:04:24,970 --> 00:04:28,580 að sumir þessara hönnun ákvarðanir ert virkilega að fara að karfa þín 85 00:04:28,580 --> 00:04:31,670 program, eða gera það að keyra hægar, eða kannski jafnvel keyra út af minni. 86 00:04:31,670 --> 00:04:35,030 En við erum enn að ýta ykkur að skrifa eins glæsilegur og 87 00:04:35,030 --> 00:04:36,450 skilvirk kóða og hægt er. 88 00:04:36,450 --> 00:04:39,910 >> Þannig að ef þú endar að skrifa hlutina sem hafa verulega stærri 89 00:04:39,910 --> 00:04:44,660 umfang, þeir vilja vera skrifuð með gott hönnun auk þess að vera rétt. 90 00:04:44,660 --> 00:04:46,300 Svo a tala af þú hefur leiddi það út. 91 00:04:46,300 --> 00:04:48,560 Það er eitthvað sem við erum að leita að - eitthvað sem við erum að fara að halda áfram að 92 00:04:48,560 --> 00:04:49,840 ýta ykkur á. 93 00:04:49,840 --> 00:04:52,460 >> Ef þú hefur einhvern tíma einhverjar spurningar um hönnun program, ekki hika 94 00:04:52,460 --> 00:04:56,870 að ná til út til mín, og ég er fús til að ganga með forritinu með þér, 95 00:04:56,870 --> 00:05:01,320 og benda á sumir af the hönnun ákvarðanir sem þú gerðir, og gefa þér 96 00:05:01,320 --> 00:05:06,240 uppástungur um hvernig á að gera jafnvel Betri hönnun ákvarðanir. 97 00:05:06,240 --> 00:05:08,870 >> Þannig að við erum að fara að flytja á að tala um Quiz 0. 98 00:05:08,870 --> 00:05:11,300 Áður en við gerum það, er einhver hefur einhverjar spurningar um hvað 99 00:05:11,300 --> 00:05:14,252 Ég hef fjallað svo langt? 100 00:05:14,252 --> 00:05:21,500 >> [Rustling Hávaði] 101 00:05:21,500 --> 00:05:22,750 >> JASON Hirschhorn: Sjö sekúndur. 102 00:05:22,750 --> 00:05:23,250 OK. 103 00:05:23,250 --> 00:05:24,970 Við skulum tala um Quiz 0 fyrir a hluti. 104 00:05:24,970 --> 00:05:26,700 Flest ykkar hafa prófi 0 er kominn aftur. 105 00:05:26,700 --> 00:05:29,820 Ef þú ert ekki, vonandi þú manst það aðeins. 106 00:05:29,820 --> 00:05:34,770 En ef þú hefur tekið próf 0, þá einnig hafa aðgang að PDF netinu í 107 00:05:34,770 --> 00:05:35,890 sýnið lausnir. 108 00:05:35,890 --> 00:05:39,480 >> Hefur einhver hefur einhverjar spurningar áður en við stökk inn efni í viku um 109 00:05:39,480 --> 00:05:41,520 einkum vandamál á Quiz 0 - 110 00:05:41,520 --> 00:05:44,630 hvers vegna svarið er hvað það er? 111 00:05:44,630 --> 00:05:47,255 Er einhver rugla um eitthvað? 112 00:05:47,255 --> 00:05:50,230 Jafnvel ef þú got the vandamál rétt, en bara langar mig til að útskýra það aðeins 113 00:05:50,230 --> 00:05:52,640 meira, ég er fús til að gera það núna. 114 00:05:52,640 --> 00:05:57,800 >> Svo ég hef spurt ykkur að koma undirbúin með nokkrum 115 00:05:57,800 --> 00:05:59,440 hugsanir um Quiz 0. 116 00:05:59,440 --> 00:06:02,660 Svo sem langar til að fá okkur byrjaði með spurningu eða 117 00:06:02,660 --> 00:06:04,655 comment um Quiz 0? 118 00:06:04,655 --> 00:06:07,435 119 00:06:07,435 --> 00:06:10,410 >> [PAPER rustling] 120 00:06:10,410 --> 00:06:11,470 >> JASON Hirschhorn: Ekki allir gerði fullkomlega. 121 00:06:11,470 --> 00:06:12,720 Þannig að ég veit [Hlær] 122 00:06:12,720 --> 00:06:15,950 Það verða að vera nokkrar spurningar um Quiz 0. 123 00:06:15,950 --> 00:06:27,940 124 00:06:27,940 --> 00:06:28,590 OK. 125 00:06:28,590 --> 00:06:29,210 Já. 126 00:06:29,210 --> 00:06:29,600 Ompica. 127 00:06:29,600 --> 00:06:30,520 >> OMPICA: Number 10. 128 00:06:30,520 --> 00:06:33,560 >> JASON Hirschhorn: Number 10. 129 00:06:33,560 --> 00:06:35,400 Hver einn var númer 10? 130 00:06:35,400 --> 00:06:35,840 >> OMPICA: The - 131 00:06:35,840 --> 00:06:36,420 >> JASON Hirschhorn: Ég haven't - 132 00:06:36,420 --> 00:06:37,670 >> OMPICA: The fela - 133 00:06:37,670 --> 00:06:40,060 134 00:06:40,060 --> 00:06:42,180 >> JASON Hirschhorn: Number 10 var átta til i - skrifa átta til i? 135 00:06:42,180 --> 00:06:42,980 >> OMPICA: Já. 136 00:06:42,980 --> 00:06:43,630 >> JASON Hirschhorn: OK. 137 00:06:43,630 --> 00:06:47,390 Svo önnur spurning sem þú gætir hafa spurði var ég Prescient? 138 00:06:47,390 --> 00:06:48,630 Svarið er já. 139 00:06:48,630 --> 00:06:52,060 Í kafla áður en prófið spurði ég þú krakkar að kóða bæði Sterling og 140 00:06:52,060 --> 00:06:52,980 átta til i. 141 00:06:52,980 --> 00:06:54,770 Bæði af þeim gerðist birtast á spurningakeppni. 142 00:06:54,770 --> 00:06:57,510 Svo vonandi, sem greidd athygli á því. 143 00:06:57,510 --> 00:07:02,520 >> Og ef þú hefðir, þá hefði sennilega gert vel á þessum tveimur. 144 00:07:02,520 --> 00:07:06,030 En átta til i, við gerðum í raun ekki númer það í bekknum, en það var, aftur, 145 00:07:06,030 --> 00:07:07,500 spurði um spurningakeppni. 146 00:07:07,500 --> 00:07:13,270 Svo a par af hlutum til að taka huga þegar erfðaskrá átta til i. 147 00:07:13,270 --> 00:07:17,320 The fyrstur hlutur, á spurningunni, var að þú þurftir að athuga ef strengurinn 148 00:07:17,320 --> 00:07:20,300 var jöfn null. 149 00:07:20,300 --> 00:07:28,060 >> Tveimur fólk reyndi að stöðva síðar í áætluninni ef s krappi ég var - 150 00:07:28,060 --> 00:07:30,940 svo sérstakur karakter í því band - var jöfn null. 151 00:07:30,940 --> 00:07:35,600 En mundu, að null er í raun - það er gott að hugsa um 152 00:07:35,600 --> 00:07:39,100 null sem núll bendiprik - bendi á núll - 153 00:07:39,100 --> 00:07:40,920 einhvers staðar í minni þar sem þú getur aldrei aðgang. 154 00:07:40,920 --> 00:07:44,730 >> Svo er ef eitthvað jafn null, þú veit að það hefur ekki verið forsniðin, 155 00:07:44,730 --> 00:07:46,430 eða það er ekkert þar. 156 00:07:46,430 --> 00:07:50,950 Svo er s char stjarna, s krappi ég er bleikja. 157 00:07:50,950 --> 00:07:57,410 Svo gerir það vit í að bera saman s að null, en ekki s krappi ég að null. 158 00:07:57,410 --> 00:07:59,390 En aftur - svo það var það fyrsta sem sem þú varst að gera - 159 00:07:59,390 --> 00:08:03,510 athuga að ganga úr skugga um að þú í raun og veru fékk alvöru band. 160 00:08:03,510 --> 00:08:08,020 >> Næstur, þú vildir fara í gegnum Hver stafur í streng. 161 00:08:08,020 --> 00:08:12,500 Og svo það væri eins og s krappi Ég, til dæmis, ef ég er Iterator þinn. 162 00:08:12,500 --> 00:08:17,250 Og taka þessi karakter, og fá raunverulegt gildi þess. 163 00:08:17,250 --> 00:08:21,800 Þú hefur það geymt sem char, en The ASCII gildi fyrir núll - 164 00:08:21,800 --> 00:08:23,010 núll og staf - 165 00:08:23,010 --> 00:08:25,450 er í raun ekki heil tala núll. 166 00:08:25,450 --> 00:08:28,700 Það er einhver önnur tala sem þú getur líta upp í ASCII töflunni. 167 00:08:28,700 --> 00:08:30,790 >> Svo ein leið til að leiðrétta það - líklega besta leiðin til að leiðrétta fyrir 168 00:08:30,790 --> 00:08:33,760 sem - er draga úr því eðli gildi - 169 00:08:33,760 --> 00:08:35,140 núll og staf. 170 00:08:35,140 --> 00:08:38,490 Svo mínus einn vitna, núll, aðra smáskífu vitna. 171 00:08:38,490 --> 00:08:44,620 Það mun taka hvað númerið sem þú hefur eins og char, og fá það jafn 172 00:08:44,620 --> 00:08:46,720 fjöldi sem raunveruleg heiltölu. 173 00:08:46,720 --> 00:08:50,300 >> Og það er mjög líkur til the aðferð fullt af fólki tók í 174 00:08:50,300 --> 00:08:52,800 Vandamálið sett 2, með keisaranum og Viginere - 175 00:08:52,800 --> 00:08:55,160 þessir dulmál, þegar þú voru að snúa þeim. 176 00:08:55,160 --> 00:08:59,210 Svo eftir að þú ert það sem tala frá núll til níu, þá - eftir 177 00:08:59,210 --> 00:09:02,750 þar sem það fer í fullkominn númer - þú þarft að margfalda það 178 00:09:02,750 --> 00:09:04,120 með krafti 10. 179 00:09:04,120 --> 00:09:07,340 >> Sumir flutt úr aftur til framan, og margfaldað einstaklinginn 180 00:09:07,340 --> 00:09:08,940 tala með krafti 10. 181 00:09:08,940 --> 00:09:11,160 Sumir flutt frá framan til baka - 182 00:09:11,160 --> 00:09:14,430 og svo tók hæsta panta tölur fyrst - 183 00:09:14,430 --> 00:09:18,190 og myndi spara þeim í alþjóðlegt gegn breytu. 184 00:09:18,190 --> 00:09:20,880 Og þá hvert skipti í gegnum FOR lykkja, margfalda það risastór heimsvísu 185 00:09:20,880 --> 00:09:25,640 gegn breytu af 10, til að gera pláss fyrir næsta char. 186 00:09:25,640 --> 00:09:28,750 >> Svo það var svolítið ruglingslegt án mér að skrifa það á borðinu. 187 00:09:28,750 --> 00:09:31,550 En úrtaki lausn er í boði fyrir þig. 188 00:09:31,550 --> 00:09:32,870 En þeir voru stór hluti við vorum að leita að. 189 00:09:32,870 --> 00:09:36,400 Einnig stöðva til að tryggja að hver sérstæð var örugglega 190 00:09:36,400 --> 00:09:39,780 eðli milli núll og níu, og ekki einhver önnur persóna, eins og A, 191 00:09:39,780 --> 00:09:41,160 til dæmis. 192 00:09:41,160 --> 00:09:43,150 >> Þeir voru hlutir sem við vorum að leita um í þeirri spurningu. 193 00:09:43,150 --> 00:09:46,510 194 00:09:46,510 --> 00:09:47,980 Er að svara spurningunni þinni? 195 00:09:47,980 --> 00:09:49,320 >> OMPICA: Já. 196 00:09:49,320 --> 00:09:50,240 >> JASON Hirschhorn: OK. 197 00:09:50,240 --> 00:09:53,940 Eru einhverjar aðrar spurningar um Quiz 0? 198 00:09:53,940 --> 00:09:55,440 Hvað um söfnun? 199 00:09:55,440 --> 00:09:56,740 Allir saman ekki satt? 200 00:09:56,740 --> 00:09:58,370 Nei 201 00:09:58,370 --> 00:09:58,840 Það voru - 202 00:09:58,840 --> 00:10:01,010 [Hlær] 203 00:10:01,010 --> 00:10:03,265 Einhverjar spurningar um samantekt aðferð? 204 00:10:03,265 --> 00:10:06,050 205 00:10:06,050 --> 00:10:06,966 Vá. 206 00:10:06,966 --> 00:10:11,090 >> [PAPER rustling] 207 00:10:11,090 --> 00:10:11,520 >> JASON Hirschhorn: Já. 208 00:10:11,520 --> 00:10:11,700 Michael. 209 00:10:11,700 --> 00:10:14,140 >> MICHAEL: Er númer 7 - handahófi? 210 00:10:14,140 --> 00:10:16,500 >> JASON Hirschhorn: Númer 7. 211 00:10:16,500 --> 00:10:20,670 Númer 7 var að fá handahófi heiltala. 212 00:10:20,670 --> 00:10:21,110 Excellent. 213 00:10:21,110 --> 00:10:25,630 Svo þú ert að gefa heiltölu a og heiltala b, og þú vilt af handahófi 214 00:10:25,630 --> 00:10:28,710 heiltala á milli a og b. 215 00:10:28,710 --> 00:10:31,740 Við getum í raun skrifa þetta einn á stjórnin, vegna þess að þetta eitt 216 00:10:31,740 --> 00:10:33,320 var ein lína af kóða - 217 00:10:33,320 --> 00:10:34,390 ein leið til að gera það. 218 00:10:34,390 --> 00:10:37,810 >> Þannig að við erum gefið drand sem virka við gætum notað. 219 00:10:37,810 --> 00:10:38,820 Og hvað þýðir drand - 220 00:10:38,820 --> 00:10:40,290 miðað við það er verið sáð - 221 00:10:40,290 --> 00:10:42,316 hvað þýðir drand aftur? 222 00:10:42,316 --> 00:10:44,840 >> MICHAEL: A fljóta milli 0,0 og 1,0. 223 00:10:44,840 --> 00:10:45,530 >> JASON Hirschhorn: Ýmis - já. 224 00:10:45,530 --> 00:10:47,910 A tala á milli 0 og 1. 225 00:10:47,910 --> 00:10:51,760 Og svo höfum við B-og A. 226 00:10:51,760 --> 00:10:55,480 Og þá höfum við handahófi númer okkar milli 0 og 1 gefið okkur drand. 227 00:10:55,480 --> 00:11:01,480 228 00:11:01,480 --> 00:11:06,630 Sumir reyndu að hafa B, eða b mínus A, eða eitthvað inni þá 229 00:11:06,630 --> 00:11:07,960 sviga. 230 00:11:07,960 --> 00:11:11,210 Það myndi þýða að þeir séu rök til þessa aðgerð. 231 00:11:11,210 --> 00:11:13,450 >> drand tekur ekki neinar röksemdir - eins getString gerir 232 00:11:13,450 --> 00:11:14,330 ekki taka nein rök. 233 00:11:14,330 --> 00:11:16,600 Svo er það bara að opna paren, nærri paren - og það sjálft, er 234 00:11:16,600 --> 00:11:17,330 virka símtalinu. 235 00:11:17,330 --> 00:11:19,770 Og það gefur þér fjölda á milli 0 og 1 er. 236 00:11:19,770 --> 00:11:22,820 Að sjálfsögðu höfum við allt svið að tölur geta vera inn 237 00:11:22,820 --> 00:11:28,470 >> Segja, ef B er 10 og A er 5, sem við raunverulega langar að tala með ýmsum 5. 238 00:11:28,470 --> 00:11:36,940 Svo er næsta hlutur sem við þurfum að gera margfalda þetta með svið b mínus. 239 00:11:36,940 --> 00:11:40,380 Svo miðað við að margfaldað. 240 00:11:40,380 --> 00:11:42,590 Og það mun gefa okkur númerið innan tiltekins svið. 241 00:11:42,590 --> 00:11:46,610 Og að sérstakur svið vera munur milli B mínus. 242 00:11:46,610 --> 00:11:50,030 >> Og að lokum, það verður bara að gefa það frá - segja á bilinu milli B mínus 243 00:11:50,030 --> 00:11:52,520 er 5, sem mun gefa okkur tala frá 0 til 5. 244 00:11:52,520 --> 00:11:56,000 En ef a er í raun 5, þurfum við að efla þetta svið allt að þar sem það er 245 00:11:56,000 --> 00:12:01,380 ætlast í raun til að vera, með því að bæta a. 246 00:12:01,380 --> 00:12:02,580 Svo fær að rökfræði rétt. 247 00:12:02,580 --> 00:12:03,745 Og þá, myndir þú hafa önnur spurning? 248 00:12:03,745 --> 00:12:04,547 >> MICHAEL: Nei 249 00:12:04,547 --> 00:12:06,010 Mér finnst bara virkilega heimsk núna. 250 00:12:06,010 --> 00:12:06,405 [Hlær] 251 00:12:06,405 --> 00:12:06,730 >> JASON Hirschhorn: Nei 252 00:12:06,730 --> 00:12:08,640 Ekki finnst virkilega heimsk. 253 00:12:08,640 --> 00:12:10,560 A tala af fólk í erfiðleikum með þessari spurningu. 254 00:12:10,560 --> 00:12:13,920 Og þá, hinn spurningin er, drand, þú sagðir, gefur þér fljóta - 255 00:12:13,920 --> 00:12:14,940 skilar fljóta. 256 00:12:14,940 --> 00:12:18,020 En þessi aðgerð í raun spurt fyrir heiltala að koma aftur. 257 00:12:18,020 --> 00:12:23,700 >> Þú þarft ekki að varpa afdráttarlaust heiltala, vegna þess að þessi 258 00:12:23,700 --> 00:12:29,090 aðgerðir munu meðhöndla það eins og allt a fljóta - sem fljótandi lið númer. 259 00:12:29,090 --> 00:12:31,570 Eins og þetta mun - jafnvel ef þetta er heil tala, þetta mun 260 00:12:31,570 --> 00:12:32,890 að margfalda rétt. 261 00:12:32,890 --> 00:12:34,000 Allt margföldun vilja vinna. 262 00:12:34,000 --> 00:12:35,060 Þú þarft ekki að reka hann hér. 263 00:12:35,060 --> 00:12:36,480 Í raun ættir þú ekki kastað henni. 264 00:12:36,480 --> 00:12:37,310 >> Sem myndi - 265 00:12:37,310 --> 00:12:40,750 ef þú vildi varpa númer sem er á milli 0 og 1 - 266 00:12:40,750 --> 00:12:42,680 A handahófi númer fljótandi lið - 267 00:12:42,680 --> 00:12:47,850 þá mun það annað hvort að vera aðeins 0 eða 1, þannig að þú munt missa öll þessi nákvæmni. 268 00:12:47,850 --> 00:12:50,120 En í lok, þegar þú kemur aftur, það gerist sjálfkrafa 269 00:12:50,120 --> 00:12:51,620 sendur til baka sem heiltala. 270 00:12:51,620 --> 00:12:56,870 Svo þú þarft ekki að gera það að greiða sjálfur. 271 00:12:56,870 --> 00:13:00,810 >> Svo var þetta ekki svar við þessi spurning, númer 7. 272 00:13:00,810 --> 00:13:02,190 Aðrar spurningar um Quiz 0? 273 00:13:02,190 --> 00:13:03,300 Já, Annie. 274 00:13:03,300 --> 00:13:05,050 >> Annie: Hvenær eigum við að nota endurkvæma - 275 00:13:05,050 --> 00:13:07,850 þegar notum endurtekningu lykkjur? 276 00:13:07,850 --> 00:13:10,210 >> JASON Hirschhorn: Þegar þú notar endurkvæma - svo almennt, að 277 00:13:10,210 --> 00:13:14,110 Kostir og gallar af endurkvæmni móti endurtekningu nálgun. 278 00:13:14,110 --> 00:13:17,110 Getur einhver bjóða upp á Pro eða sam? 279 00:13:17,110 --> 00:13:19,460 Vinsamlegast? 280 00:13:19,460 --> 00:13:20,140 Ekki getur hver sem er. 281 00:13:20,140 --> 00:13:22,526 Sem getur boðið upp á Pro eða sam? 282 00:13:22,526 --> 00:13:26,963 >> [PAPER rustling] 283 00:13:26,963 --> 00:13:29,730 >> STUDENT 1: Endurkvæm er minna erfðaskrá - minna slá? 284 00:13:29,730 --> 00:13:33,170 >> JASON Hirschhorn: Svo almennt, endurkvæmni sérstaklega, ferii sem er - 285 00:13:33,170 --> 00:13:35,750 eða reiknirit eins sameiningu Flokka - sem lánar sig 286 00:13:35,750 --> 00:13:37,300 til endurkvæma aðferð - 287 00:13:37,300 --> 00:13:40,710 gæti verið meira augljóst að kóða endurkvæmt. 288 00:13:40,710 --> 00:13:43,940 Og bara gera meira vit að gera það í undirmöppum. 289 00:13:43,940 --> 00:13:46,230 Svo það væri atvinnumaður að endurkvæmni. 290 00:13:46,230 --> 00:13:46,610 Öðrum? 291 00:13:46,610 --> 00:13:47,467 Já? 292 00:13:47,467 --> 00:13:49,240 >> STUDENT 2: Con að endurkvæmni - 293 00:13:49,240 --> 00:13:50,940 Það notar meira minni. 294 00:13:50,940 --> 00:13:52,200 >> JASON Hirschhorn: Svo nákvæmlega rétt. 295 00:13:52,200 --> 00:13:55,720 A endurkvæma virka mun halda að bæta stakkur ramma til að stafla. 296 00:13:55,720 --> 00:13:59,690 Þannig að ef þú ætlar að starfa á fullt af tölur, og verða að kalla þetta 297 00:13:59,690 --> 00:14:02,560 virka mikið, þá munt þú örugglega taka upp meira minni, en 298 00:14:02,560 --> 00:14:05,810 endurtekningu nálgun mun setja eitt stafla ramma á mánudaginn, vegna 299 00:14:05,810 --> 00:14:08,420 það gerist allt innan virka. 300 00:14:08,420 --> 00:14:11,010 >> Allar aðrar kostir og gallar? 301 00:14:11,010 --> 00:14:11,500 Já. 302 00:14:11,500 --> 00:14:12,550 >> STUDENT 3: Kostir fyrir endurkvæmni. 303 00:14:12,550 --> 00:14:15,950 Þú þarft ekki að ákveða í fara hversu oft 304 00:14:15,950 --> 00:14:17,660 númer þurfti að endurtaka. 305 00:14:17,660 --> 00:14:22,810 Hægt er að hafa fyrirfram ákveðinn fjölda sinnum að þú þarft að iterate, þá 306 00:14:22,810 --> 00:14:26,420 endurkvæmni er betri, vegna þess að það tekur að niðurstöðu. 307 00:14:26,420 --> 00:14:27,780 >> JASON Hirschhorn: Ég held það er satt. 308 00:14:27,780 --> 00:14:30,770 En ég held að í báðum tilfellum Þú myndir aldrei - 309 00:14:30,770 --> 00:14:33,290 þú vildi sennilega fá sumir skilaboðum frá notanda. 310 00:14:33,290 --> 00:14:35,990 Eða þessi aðgerð myndi hafa sumir inntak sem myndi ákvarða hversu oft það 311 00:14:35,990 --> 00:14:36,730 ætti að keyra. 312 00:14:36,730 --> 00:14:39,520 Svo almennt, þú myndir ekki harður kóðann - jafnvel í endurtekningu nálgun - hvernig 313 00:14:39,520 --> 00:14:40,940 oft að lykkja ætti að hlaupa. 314 00:14:40,940 --> 00:14:46,100 315 00:14:46,100 --> 00:14:48,670 >> Vissir þú hafa annað sem þú varst hugsa um, Annie? 316 00:14:48,670 --> 00:14:49,330 OK. 317 00:14:49,330 --> 00:14:51,650 Þeir eru líklega tveir - 318 00:14:51,650 --> 00:14:54,370 stærsta atvinnumaður og stærsta sam að endurkvæma móti 319 00:14:54,370 --> 00:14:57,080 endurtekningu nálgun. 320 00:14:57,080 --> 00:14:57,690 OK. 321 00:14:57,690 --> 00:14:59,465 Eitthvað annað á Quiz 0? 322 00:14:59,465 --> 00:15:08,940 323 00:15:08,940 --> 00:15:09,920 >> Skulum fara. 324 00:15:09,920 --> 00:15:15,260 Skrá I / O. Það er yndislegt stutt í þessari viku á skrá I / O sem vonandi 325 00:15:15,260 --> 00:15:19,270 Þú hefur horft margfeldi sinnum, og dáðist. 326 00:15:19,270 --> 00:15:22,910 A einhver fjöldi af vinna fór í það, og ég hef heyrðu það er geðveikur gagnlegt. 327 00:15:22,910 --> 00:15:25,740 Ég hef líka tengil á þessa mynd, ef þú hefur ekki haft 328 00:15:25,740 --> 00:15:29,160 tækifæri til að horfa á það 10 sinnum. 329 00:15:29,160 --> 00:15:35,280 >> Svo erum við að fara til stuttlega farið yfir Helstu skref til að opna og vinna 330 00:15:35,280 --> 00:15:38,400 með skrár, og þá erum við að fara að kafa í erfðaskrá vandamál áður 331 00:15:38,400 --> 00:15:40,400 skoða Heimadæmi. 332 00:15:40,400 --> 00:15:44,330 Svo aftur, ég ætla að setja þetta upp á skjánum, en ég ætla að tala um 333 00:15:44,330 --> 00:15:47,630 bara eina mínútu um það sem við erum gera hér með skrá I/O-- 334 00:15:47,630 --> 00:15:49,090 hvað þýðir það? 335 00:15:49,090 --> 00:15:55,280 >> Það þýðir að við getum búið til okkar forrit, og þá hafa áætlanir okkar 336 00:15:55,280 --> 00:16:00,370 brottför, og ekki hafa gert nein áhrif á heimurinn utan kerfis okkar. 337 00:16:00,370 --> 00:16:04,630 En þegar við byrjum að vinna með skrár - bæði lesa þær í og ​​skapa 338 00:16:04,630 --> 00:16:10,460 þá - við getum haft einhver áhrif á heimurinn utan kerfis okkar. 339 00:16:10,460 --> 00:16:15,440 >> Rétt eins og ef Microsoft Word gat ekki að gera neinar Word skjöl, þá 340 00:16:15,440 --> 00:16:18,710 þegar Microsoft Word hætta, öllum þínum yrði farið, og það væri 341 00:16:18,710 --> 00:16:19,740 virkilega vera gagnslaus. 342 00:16:19,740 --> 00:16:23,620 Við viljum að lokum vera fær um að skrifa forrit sem geta haft áhrif á 343 00:16:23,620 --> 00:16:31,350 heimurinn í kringum þá, bæði með því að taka í flóknar inntak - í skilmálar af skrá og 344 00:16:31,350 --> 00:16:37,080 um skrá, og einnig að skapa áhugavert og sannfærandi framleiðsla - 345 00:16:37,080 --> 00:16:39,520 að því er varðar mismunandi gerðir af skrá. 346 00:16:39,520 --> 00:16:43,730 >> Svo það er þess vegna sem við erum farin að læra hvernig á að vinna með skrár. 347 00:16:43,730 --> 00:16:47,080 Nánar tiltekið, það sem við gerum er sem hér segir. 348 00:16:47,080 --> 00:16:47,680 Það er mjög einfalt. 349 00:16:47,680 --> 00:16:51,530 Það eru aðeins nokkur skref, og þau eru skráð hér á þessum kóða. 350 00:16:51,530 --> 00:16:55,130 Þannig að við ætlum að fara í gegnum þetta línu fyrir línu. 351 00:16:55,130 --> 00:16:57,630 >> Fyrst, þú sérð hápunktur - 352 00:16:57,630 --> 00:17:01,330 þegar þú ert að vinna með skrá, Óháð því hvaða gerð af skrá er það, 353 00:17:01,330 --> 00:17:02,670 þú þarft til að opna hana. 354 00:17:02,670 --> 00:17:05,130 Og það er með símtali til fopen - 355 00:17:05,130 --> 00:17:05,950 hérna. 356 00:17:05,950 --> 00:17:07,980 Þú setur nafnið á skránni. 357 00:17:07,980 --> 00:17:11,930 Ef skráin er ekki í möppuna, eða möppuna þar sem þetta forrit 358 00:17:11,930 --> 00:17:15,910 líf, þá þarftu líka að fela vörðuð leið að þar sem skrá er. 359 00:17:15,910 --> 00:17:19,099 >> Við erum að fara að gera ráð fyrir að þetta skrá sem heitir "text.txt" - 360 00:17:19,099 --> 00:17:24,220 einfaldur texti skjal - er í sömu möppu og þetta forrit er. 361 00:17:24,220 --> 00:17:26,859 Svo það er annar hlutur til viðurværi í hugur - að ef þú vilt að opna skrá 362 00:17:26,859 --> 00:17:30,050 annars staðar, þú þarft í raun og veru að fela staðsetningu hennar. 363 00:17:30,050 --> 00:17:33,520 >> Í öðru lagi, getur þú standast rök fopen, og það er það sem þú vilt gera 364 00:17:33,520 --> 00:17:34,620 með skrárinnar. 365 00:17:34,620 --> 00:17:38,450 Það eru þrjár helstu rök að þú ert að fara að fara að fopen. 366 00:17:38,450 --> 00:17:40,060 Hver getur gefið mér þessar þrjár? 367 00:17:40,060 --> 00:17:44,960 368 00:17:44,960 --> 00:17:47,130 Hver getur gefið mér einn af þeim? 369 00:17:47,130 --> 00:17:48,130 Já. 370 00:17:48,130 --> 00:17:50,010 >> STUDENT 4: The skrá nafn? 371 00:17:50,010 --> 00:17:50,440 >> JASON Hirschhorn: Því miður. 372 00:17:50,440 --> 00:17:55,490 Þrjár rök þú getur framhjá sem annað rök að fopen. 373 00:17:55,490 --> 00:17:57,060 Þú ert rétt - skrá nafn er fyrsta rifrildi. 374 00:17:57,060 --> 00:18:01,620 En seinni rök að fopen eru almennt þrjár strengjum, og - já. 375 00:18:01,620 --> 00:18:02,210 Aleja. 376 00:18:02,210 --> 00:18:03,490 >> ALEJA: A til endingin. 377 00:18:03,490 --> 00:18:06,840 >> JASON Hirschhorn: A, ef þú vilt að bæta við skrá sem er þegar til. 378 00:18:06,840 --> 00:18:07,810 >> STUDENT 5: R til að lesa. 379 00:18:07,810 --> 00:18:09,930 >> JASON Hirschhorn: R, ef þú vilja til að lesa úr skrá. 380 00:18:09,930 --> 00:18:10,670 >> STUDENT 6: W fyrir skrifa. 381 00:18:10,670 --> 00:18:12,840 >> JASON Hirschhorn: Og w, ef þú langar til að skrifa í skrá. 382 00:18:12,840 --> 00:18:17,570 Svo í þessu tilfelli erum við að skrifa að skránni, þannig að við höfum w. 383 00:18:17,570 --> 00:18:22,360 Þú opnar það, hefur þú einnig að vista skrá einhvers staðar, og það er með 384 00:18:22,360 --> 00:18:26,000 kóða til vinstri hönd hlið af framsal rekstraraðili - 385 00:18:26,000 --> 00:18:31,220 Ég er að stofna bendi til a skrá heitir, í þessu tilfelli, skrá. 386 00:18:31,220 --> 00:18:36,070 >> Við erum ekki að fara að hafa áhyggjur hvað þetta ALL Paprika FILE hlutur er. 387 00:18:36,070 --> 00:18:40,600 Látum nægja að segja, er það löngu straum af núllum og sjálfur. 388 00:18:40,600 --> 00:18:44,970 Og það er hvernig við ætlum að reka það og skilja það. 389 00:18:44,970 --> 00:18:47,300 >> The næstur hlutur sem við þurfum að gera - og þetta er ótrúlega mikilvægt - 390 00:18:47,300 --> 00:18:49,070 þegar þú opnar skrá - 391 00:18:49,070 --> 00:18:54,250 Í raun, þegar þú kallar malloc, fyrir dæmi, og fá sumir minni og reyna 392 00:18:54,250 --> 00:18:57,980 og vista það í bendi, þú alltaf vilja til að athuga til að tryggja að þessi 393 00:18:57,980 --> 00:19:00,230 aðgerðin skilaði ekki null. 394 00:19:00,230 --> 00:19:05,230 >> Þannig að í þessu tilviki, við erum að stöðva til að gera viss um að við opnuðum í raun 395 00:19:05,230 --> 00:19:10,230 skrá rétt, og það var engin villa í kerfi okkar. 396 00:19:10,230 --> 00:19:15,160 Næst, þegar við höfum athugað til að tryggja að við höfum að vinna skrá, getum við 397 00:19:15,160 --> 00:19:18,520 skrifa til, eða lesa, eða bæta við skrá. 398 00:19:18,520 --> 00:19:24,270 Í þessu tilviki, Ég er einfaldlega prentun ein lína í þessa skrá. 399 00:19:24,270 --> 00:19:25,450 >> Hvernig veit ég það? 400 00:19:25,450 --> 00:19:27,990 Jæja, ég ætla að nota þessa aðgerð kallað fprintf. 401 00:19:27,990 --> 00:19:30,970 Allar aðgerðir sem þú verður að nota þegar þú skrifar að, eða lesa af, eða 402 00:19:30,970 --> 00:19:34,950 notfæra skrár verður svipað aðgerðir sem þú hefur séð áður, en 403 00:19:34,950 --> 00:19:38,420 byrja á stafnum F, standa fyrir skrá. 404 00:19:38,420 --> 00:19:43,440 Og fprintf, ólíkt venjulegum prenta okkar app, tekur einn til viðbótar rök, 405 00:19:43,440 --> 00:19:47,800 og það er skrá þar sem þú vilt prenta þessa línu til. 406 00:19:47,800 --> 00:19:50,640 >> Ég hef ekki neitt að rétt ohai. 407 00:19:50,640 --> 00:19:52,860 Ég hef ekki þriðja rök að printf - 408 00:19:52,860 --> 00:19:57,030 eða annað rök að printf, sem Þriðja röksemd að fprintf, því ég 409 00:19:57,030 --> 00:19:59,480 ekki hafa allir staðgengla hér. 410 00:19:59,480 --> 00:20:01,070 Ég er ekki þar á meðal einhverjar breytur. 411 00:20:01,070 --> 00:20:06,070 En aftur, fprintf og öll þessi skrá aðgerðir sem starfa með skrár 412 00:20:06,070 --> 00:20:09,820 eru almennt að fara að þurfa að skrá sem þeir vinni. 413 00:20:09,820 --> 00:20:15,960 >> Að lokum, síðasta mikilvægur hlutur til gera er að loka skrá, rétt eins og 414 00:20:15,960 --> 00:20:19,530 með - þegar við malloc eitthvað, við viljum að losa eitthvað, svo að við 415 00:20:19,530 --> 00:20:22,730 hafa minni leka - við viljum að loka skrá okkar. 416 00:20:22,730 --> 00:20:28,180 Ef þetta forrit lauk án þess að loka skráin, eru líkurnar ekkert myndi fara 417 00:20:28,180 --> 00:20:30,050 rangt, sérstaklega ef það var lítil skrá. 418 00:20:30,050 --> 00:20:35,020 >> En það er vissulega gott erfðaskrá stíl og æfa alltaf loka skránni þinni 419 00:20:35,020 --> 00:20:38,050 þegar þú ert búinn að nota hana. 420 00:20:38,050 --> 00:20:43,630 Svo er þessi grunnatriði skrá I / O. Þú hefur sennilega séð það áður, eða 421 00:20:43,630 --> 00:20:45,710 horfði á það í þeirri frábæru stutt. 422 00:20:45,710 --> 00:20:48,410 Hefur einhver hefur einhverjar spurningar, áður en við förum í einhvers æfa forritun 423 00:20:48,410 --> 00:20:51,800 vandamál, um skrá I / O eða skref ég fór bara yfir? 424 00:20:51,800 --> 00:21:00,198 425 00:21:00,198 --> 00:21:03,162 >> [Vélritun Hljómar] 426 00:21:03,162 --> 00:21:04,150 >> JASON Hirschhorn: Ert þú hafa a spurning, AVI? 427 00:21:04,150 --> 00:21:04,660 >> AVI: Nei 428 00:21:04,660 --> 00:21:04,740 >> JASON Hirschhorn: OK. 429 00:21:04,740 --> 00:21:06,746 Ég ætla að bíða annan sjö sekúndur. 430 00:21:06,746 --> 00:21:07,590 [Hlær] 431 00:21:07,590 --> 00:21:08,620 Sem er mjög góð ábending. 432 00:21:08,620 --> 00:21:10,750 Þið bara ekki eins spyrja spurninga. 433 00:21:10,750 --> 00:21:11,660 Það er allt í lagi. 434 00:21:11,660 --> 00:21:12,330 OK. 435 00:21:12,330 --> 00:21:17,620 Svo fyrsta æfa vandamál, við erum fara til afrit virkni 436 00:21:17,620 --> 00:21:22,330 a stjórn lína tól sem þú sennilega notað áður - eintak - 437 00:21:22,330 --> 00:21:23,500 afrita tól. 438 00:21:23,500 --> 00:21:28,050 Ef þú slærð CP og þá fara framhjá það tveir rök í flugstöðinni, þú getur 439 00:21:28,050 --> 00:21:28,980 afrita skrá. 440 00:21:28,980 --> 00:21:31,220 Og það er það sem við erum að fara til að skrifa núna. 441 00:21:31,220 --> 00:21:35,830 >> Svo aftur, lesa burt af þessum renna, myndi ég þér að skrifa forrit sem tekur 442 00:21:35,830 --> 00:21:38,130 tveir og aðeins tveir stjórn-lína rök - 443 00:21:38,130 --> 00:21:40,750 uppspretta skrá og áfangastað skrá - 444 00:21:40,750 --> 00:21:44,590 og afrit innihald af the uppspretta skrá til áfangastaðar skrá 445 00:21:44,590 --> 00:21:46,960 eitt bæti í einu. 446 00:21:46,960 --> 00:21:48,510 Svo það er mikið að biðja um. 447 00:21:48,510 --> 00:21:52,200 >> Again, góð aðferð til þessa er að ekki fara beint til the C kóða, en 448 00:21:52,200 --> 00:21:54,280 brjóta það niður í nokkur skref. 449 00:21:54,280 --> 00:21:58,400 Fyrst, hugsa um rökfræði - einmitt það sem ég er að biðja þig að gera - 450 00:21:58,400 --> 00:22:00,620 og skilja allt í skref á þessu vandamáli. 451 00:22:00,620 --> 00:22:04,410 Ekki í C, bara í sumum sauðakóðanum, eða jafnvel andlegt líkan af 452 00:22:04,410 --> 00:22:06,030 hvað er að gerast. 453 00:22:06,030 --> 00:22:10,050 >> Næst, þegar þú hefur sauðakóðanum niður, reikna út hvernig sauðakóðanum 454 00:22:10,050 --> 00:22:14,600 kort inná verkfæri og hlutir sem við höfum lærði að nota í C. 455 00:22:14,600 --> 00:22:19,070 >> Og að lokum, þegar þú hefur allt sem saman, getur þú kóðann vandann. 456 00:22:19,070 --> 00:22:23,370 Tekið 5 til 10 mínútur að vinna á þessu vandamáli. 457 00:22:23,370 --> 00:22:25,800 Ég set leiðbeiningunum aftur upp í annað. 458 00:22:25,800 --> 00:22:27,990 Og þá erum við að fara að fara yfir á sauðakóðanum og númer 459 00:22:27,990 --> 00:22:29,230 það lifa sem hópur. 460 00:22:29,230 --> 00:22:31,640 >> Ef þú hefur einhverjar spurningar á meðan þú ert vinna á þessu, ekki hika við að hækka 461 00:22:31,640 --> 00:22:34,260 hönd þín, og ég mun koma um og svara þeim. 462 00:22:34,260 --> 00:22:37,020 463 00:22:37,020 --> 00:22:39,330 >> STUDENT 7: Get ég högg a stykki af pappír? 464 00:22:39,330 --> 00:22:41,537 >> JASON Hirschhorn: Hvað er uppi? 465 00:22:41,537 --> 00:26:46,047 466 00:26:46,047 --> 00:26:48,043 >> [Vélritun Hljómar] 467 00:26:48,043 --> 00:26:48,730 >> JASON Hirschhorn: OK. 468 00:26:48,730 --> 00:26:51,710 Við skulum fara yfir sauðakóðanum fyrst og þá ég skal gefa þér nokkrar fleiri 469 00:26:51,710 --> 00:26:52,960 mínútur til að klára kóðun. 470 00:26:52,960 --> 00:26:55,540 471 00:26:55,540 --> 00:26:58,650 >> Sem langar til að byrja mig burt með fyrstu línu 472 00:26:58,650 --> 00:27:00,030 sauðakóðanum fyrir þessa aðgerð? 473 00:27:00,030 --> 00:27:03,330 474 00:27:03,330 --> 00:27:05,740 >> STUDENT 8: Athugaðu að ganga úr skugga um að þú varst að gefa tvær skrár. 475 00:27:05,740 --> 00:27:06,990 >> JASON Hirschhorn: OK. 476 00:27:06,990 --> 00:27:21,270 477 00:27:21,270 --> 00:27:22,990 Og ef við erum ekki? 478 00:27:22,990 --> 00:27:25,974 >> STUDENT 8: Ég myndi aftur á 0. 479 00:27:25,974 --> 00:27:27,872 >> JASON Hirschhorn: Ættum við að skila 0? 480 00:27:27,872 --> 00:27:30,182 >> STUDENT 8: fara aftur a - 481 00:27:30,182 --> 00:27:30,650 tæmingu. 482 00:27:30,650 --> 00:27:30,850 Sorry. 483 00:27:30,850 --> 00:27:31,210 >> JASON Hirschhorn: Já. 484 00:27:31,210 --> 00:27:32,710 Sennilega ekki 0. 485 00:27:32,710 --> 00:27:34,680 Vegna 0 þýðir allt var gott. 486 00:27:34,680 --> 00:27:35,030 OK. 487 00:27:35,030 --> 00:27:36,730 Svo er það fyrsta línan af sauðakóðanum. 488 00:27:36,730 --> 00:27:38,715 Hver hefur annarri línu sauðakóðanum? 489 00:27:38,715 --> 00:27:40,630 >> STUDENT 9: Opna bæði skrár? 490 00:27:40,630 --> 00:27:41,880 >> JASON Hirschhorn: Opið bæði skrár. 491 00:27:41,880 --> 00:27:49,970 492 00:27:49,970 --> 00:27:50,920 OK? 493 00:27:50,920 --> 00:27:52,850 >> STUDENT 10: Athugaðu að sjá ef skráin er NÚLL? 494 00:27:52,850 --> 00:28:10,906 495 00:28:10,906 --> 00:28:12,580 >> JASON Hirschhorn: Athugaðu að ganga viss hvorki eru NÚLL. 496 00:28:12,580 --> 00:28:15,800 Sem innskot - 497 00:28:15,800 --> 00:28:17,540 rista 0 - 498 00:28:17,540 --> 00:28:18,887 er þessi NÚLL? 499 00:28:18,887 --> 00:28:20,080 >> STUDENT 11: No 500 00:28:20,080 --> 00:28:21,190 >> JASON Hirschhorn: Það er ekki NULL. 501 00:28:21,190 --> 00:28:23,400 Það er kallað NULL Ljúka. 502 00:28:23,400 --> 00:28:25,580 Það er í raun stafsett með aðeins eitt l. 503 00:28:25,580 --> 00:28:28,580 Svo stöðva eitthvað á móti því - það er í raun eðli - 504 00:28:28,580 --> 00:28:31,710 svo stöðva eitthvað á móti sem er ekki það sama og stöðva til sjá ef það 505 00:28:31,710 --> 00:28:32,690 jafngildir NULL. 506 00:28:32,690 --> 00:28:34,100 >> Og sumt fólk - 507 00:28:34,100 --> 00:28:36,040 á prófum sínum og vanda þeirra setur - hafa fengið að 508 00:28:36,040 --> 00:28:36,890 tvö af þeim sem rugla. 509 00:28:36,890 --> 00:28:38,830 En tveir af þeim eru í raun öðruvísi. 510 00:28:38,830 --> 00:28:40,220 Einn endar streng - 511 00:28:40,220 --> 00:28:43,210 einn er bendi á 0. 512 00:28:43,210 --> 00:28:46,490 >> STUDENT 12: Hvers vegna vildi þú ekki að athuga að ganga úr skugga um að skrár séu ekki NULL 513 00:28:46,490 --> 00:28:48,670 áður en þú opnar þær? 514 00:28:48,670 --> 00:28:54,772 >> JASON Hirschhorn: Svo opinn vistar eitthvað í þessi skrá. 515 00:28:54,772 --> 00:28:57,780 Og ef þú ferð aftur hingað - 516 00:28:57,780 --> 00:28:59,520 svo þessi lína - fopen - 517 00:28:59,520 --> 00:29:05,300 mun gefa þér heimilisfang og geyma að tölu í skrá ef það virkar. 518 00:29:05,300 --> 00:29:07,650 Ef það virkar ekki, það mun geyma NULL - 519 00:29:07,650 --> 00:29:08,020 >> STUDENT 12: Ó. 520 00:29:08,020 --> 00:29:08,180 OK. 521 00:29:08,180 --> 00:29:08,500 Fékk þig. 522 00:29:08,500 --> 00:29:09,050 >> JASON Hirschhorn: Í skránni. 523 00:29:09,050 --> 00:29:11,990 Svo þú getur ekki stöðva for null áður en þú hefur opnað þeim. 524 00:29:11,990 --> 00:29:13,520 NULL þýðir eitthvað ekki virka rétt. 525 00:29:13,520 --> 00:29:18,030 526 00:29:18,030 --> 00:29:18,740 OK. 527 00:29:18,740 --> 00:29:22,590 Svo gættu hvorki er? 528 00:29:22,590 --> 00:29:23,200 Eða eru? 529 00:29:23,200 --> 00:29:23,770 Hvað eigum við held? 530 00:29:23,770 --> 00:29:24,310 Við munum fara með það. 531 00:29:24,310 --> 00:29:24,520 >> STUDENT 13: Er. 532 00:29:24,520 --> 00:29:25,020 >> JASON Hirschhorn: Er? 533 00:29:25,020 --> 00:29:25,930 Hvorki er? 534 00:29:25,930 --> 00:29:26,350 >> STUDENT 13: Er. 535 00:29:26,350 --> 00:29:26,390 >> JASON Hirschhorn: OK. 536 00:29:26,390 --> 00:29:28,510 Við virðumst hafa sumir samstaða um það. 537 00:29:28,510 --> 00:29:30,520 Hvorki er NULL. 538 00:29:30,520 --> 00:29:32,250 OK, næsta lína af sauðakóðanum. 539 00:29:32,250 --> 00:29:33,600 Hver hefur ekki gefið mér línu enn? 540 00:29:33,600 --> 00:29:37,350 541 00:29:37,350 --> 00:29:38,295 Við munum bíða eftir þér. 542 00:29:38,295 --> 00:29:39,020 Já. 543 00:29:39,020 --> 00:29:40,895 >> STUDENT 14: Þú ert að lesa frá fyrsta skrá? 544 00:29:40,895 --> 00:29:42,290 >> JASON Hirschhorn: OK. 545 00:29:42,290 --> 00:29:46,240 >> STUDENT 14: Eða við notum fscanf eða Eitthvað eins og þessi fyrsta skrá? 546 00:29:46,240 --> 00:29:50,650 >> JASON Hirschhorn: Þannig að við viljum lesa frá fyrstu skránni og - 547 00:29:50,650 --> 00:29:51,900 skulum setja það hérna. 548 00:29:51,900 --> 00:30:00,600 549 00:30:00,600 --> 00:30:01,880 Lesið úr frumskrár. 550 00:30:01,880 --> 00:30:05,370 Og þá, hvað eigum við að gera eftir að við lesa úr frumskrár? 551 00:30:05,370 --> 00:30:06,620 Einhver annar? 552 00:30:06,620 --> 00:30:09,150 553 00:30:09,150 --> 00:30:12,190 >> STUDENT 15: Skrifa inn markskrána? 554 00:30:12,190 --> 00:30:22,080 555 00:30:22,080 --> 00:30:25,620 >> JASON Hirschhorn: Við skrifa til markskrána, og - 556 00:30:25,620 --> 00:30:26,210 OK. 557 00:30:26,210 --> 00:30:30,030 Hvað annað eru við vantar? 558 00:30:30,030 --> 00:30:32,460 Einhver annar sem hefur ekki gefið mér lína af kóða enn - af sauðakóðanum. 559 00:30:32,460 --> 00:30:33,510 Já. 560 00:30:33,510 --> 00:30:36,540 >> STUDENT 16: Kannski þú getur alltaf að skoða hvort það er eitthvað til að lesa fyrir, 561 00:30:36,540 --> 00:30:37,970 eins og næsta lína? 562 00:30:37,970 --> 00:30:39,550 Sem eru eins og næsta lína, sjá hvort það er til staðar. 563 00:30:39,550 --> 00:30:40,660 >> [RAFRÆN FLAUTA] 564 00:30:40,660 --> 00:30:41,095 >> JASON Hirschhorn: Oops. 565 00:30:41,095 --> 00:30:43,120 Það er journaling hugbúnaður minn. 566 00:30:43,120 --> 00:30:43,580 Já? 567 00:30:43,580 --> 00:30:44,960 >> STUDENT 16: Já. 568 00:30:44,960 --> 00:30:48,940 >> JASON Hirschhorn: Svo gefa það að mér einu sinni enn. 569 00:30:48,940 --> 00:30:51,640 >> STUDENT 16: Athugaðu hvort það er enn næsta lína frá 570 00:30:51,640 --> 00:30:52,920 frumskrár að lesa. 571 00:30:52,920 --> 00:30:53,500 >> JASON Hirschhorn: OK. 572 00:30:53,500 --> 00:30:56,060 Þannig að við erum ekki að lesa línur - var að lesa bæti hér - 573 00:30:56,060 --> 00:30:57,590 en þú ert rétt. 574 00:30:57,590 --> 00:31:00,040 Við viljum að lesa og skrifa þar það eru ekki fleiri bæti. 575 00:31:00,040 --> 00:31:11,430 576 00:31:11,430 --> 00:31:11,735 OK. 577 00:31:11,735 --> 00:31:16,940 Og svo þetta ætti í raun að vera grafin svolítið, vegna þess að þeir eru undir það. 578 00:31:16,940 --> 00:31:17,470 Satt? 579 00:31:17,470 --> 00:31:20,620 Þar til við erum út af bytes, þá ætlum við að lesa frá upptökum skrá og skrifa 580 00:31:20,620 --> 00:31:22,160 til áfangastaðar skrá. 581 00:31:22,160 --> 00:31:24,510 >> Og þá, hvað er síðasta lína af sauðakóðanum? 582 00:31:24,510 --> 00:31:26,380 Einhver sem er ekki gefið mig eitthvað enn. 583 00:31:26,380 --> 00:31:29,270 584 00:31:29,270 --> 00:31:30,260 >> STUDENT 17: Lokaðu skrár? 585 00:31:30,260 --> 00:31:31,510 >> JASON Hirschhorn: Einmitt. 586 00:31:31,510 --> 00:31:36,370 587 00:31:36,370 --> 00:31:37,450 Loka skrá. 588 00:31:37,450 --> 00:31:38,400 Þannig að það er sauðakóðanum. 589 00:31:38,400 --> 00:31:41,870 Ég ætla að setja sauðakóðanum inn gedit, og í nokkrar mínútur við 590 00:31:41,870 --> 00:31:44,626 mun tákna þetta saman. 591 00:31:44,626 --> 00:33:55,280 592 00:33:55,280 --> 00:33:56,000 >> OK. 593 00:33:56,000 --> 00:33:58,290 Leyfðu okkur að byrja sem hópur. 594 00:33:58,290 --> 00:33:59,940 Nishant, ég hef nýja skrá mína. 595 00:33:59,940 --> 00:34:01,130 Ég hef bara opnað þetta upp. 596 00:34:01,130 --> 00:34:01,880 Untitled Document 1. 597 00:34:01,880 --> 00:34:05,490 Hvað er það fyrsta sem ég ætti að gera? 598 00:34:05,490 --> 00:34:07,040 >> NISHANT: Hafa bókasöfnum? 599 00:34:07,040 --> 00:34:08,219 >> JASON Hirschhorn: OK. 600 00:34:08,219 --> 00:34:11,070 Hvað bókasöfn? 601 00:34:11,070 --> 00:34:17,570 >> NISHANT: stdio.h, stdlib.h, tel ég? 602 00:34:17,570 --> 00:34:18,000 >> JASON Hirschhorn: OK. 603 00:34:18,000 --> 00:34:21,592 Hvað er stdlib fyrir? 604 00:34:21,592 --> 00:34:23,010 >> NISHANT: Ég gleymdi. 605 00:34:23,010 --> 00:34:23,219 >> JASON Hirschhorn: OK. 606 00:34:23,219 --> 00:34:24,179 Svo eru stdio. 607 00:34:24,179 --> 00:34:28,630 Hvað ætti ég að gera jafnvel áður en Ég byrja erfðaskrá? 608 00:34:28,630 --> 00:34:29,710 >> NISHANT: Skrifa haus? 609 00:34:29,710 --> 00:34:31,830 >> JASON Hirschhorn: Hvernig fæ ég það litað? 610 00:34:31,830 --> 00:34:34,060 >> [INTERPOSING raddir] 611 00:34:34,060 --> 00:34:35,040 >> NISHANT: Hvernig færðu það litað? 612 00:34:35,040 --> 00:34:38,060 >> JASON Hirschhorn: Hvernig ég lit erfðaskrá? 613 00:34:38,060 --> 00:34:38,570 >> NISHANT: Ég veit það ekki. 614 00:34:38,570 --> 00:34:38,830 Oh. 615 00:34:38,830 --> 00:34:39,389 Vista. 616 00:34:39,389 --> 00:34:39,929 >> JASON Hirschhorn: Vista. 617 00:34:39,929 --> 00:34:40,270 Já. 618 00:34:40,270 --> 00:34:41,760 Ég ætti að vista það sem. C. 619 00:34:41,760 --> 00:34:46,239 Svo vista það á the skrifborð sem cp.c. 620 00:34:46,239 --> 00:34:47,280 Sætur. 621 00:34:47,280 --> 00:34:51,199 Og ef ég vil fá fullt stíl stig, hvað ætti ég 622 00:34:51,199 --> 00:34:53,085 fela í sér efst? 623 00:34:53,085 --> 00:34:58,390 >> NISHANT: Þú getur skrifað nafnið þitt, nafn áætlunarinnar og þeim tilgangi 624 00:34:58,390 --> 00:34:59,640 áætlunarinnar eins og heilbrigður? 625 00:34:59,640 --> 00:35:08,400 626 00:35:08,400 --> 00:35:10,040 >> JASON Hirschhorn: Lítur vel út. 627 00:35:10,040 --> 00:35:10,470 Excellent. 628 00:35:10,470 --> 00:35:12,940 Svo þú hefur byrjað okkur burt fullkomlega. 629 00:35:12,940 --> 00:35:13,720 # Include - 630 00:35:13,720 --> 00:35:15,365 við munum líka skrifa - 631 00:35:15,365 --> 00:35:30,050 632 00:35:30,050 --> 00:35:30,870 OK. 633 00:35:30,870 --> 00:35:33,520 Þannig að ég held að ég sé allt sett til að fara. 634 00:35:33,520 --> 00:35:38,003 Hver hefur the fyrstur lína af kóða fyrir mig - eða fyrstu línur af kóða sem 635 00:35:38,003 --> 00:35:41,280 það mun taka að uppfylla okkar fyrstur comment í sauðakóðanum? 636 00:35:41,280 --> 00:35:41,985 Þú. 637 00:35:41,985 --> 00:35:48,780 >> STUDENT 18: Ætti það ekki að vera Int argc, og þá char * argv? 638 00:35:48,780 --> 00:35:49,490 >> JASON Hirschhorn: Ég held þú ert rétt. 639 00:35:49,490 --> 00:35:56,270 Skulum breyta því að int helstu, opna paren, INT argc, komma, char * argv? 640 00:35:56,270 --> 00:35:57,150 Svona? 641 00:35:57,150 --> 00:35:57,410 >> STUDENT 18: Krappi. 642 00:35:57,410 --> 00:35:58,260 >> JASON Hirschhorn: Krappi. 643 00:35:58,260 --> 00:35:59,860 Open krappi, loka krappi, loka foreldri. 644 00:35:59,860 --> 00:36:00,240 Fullkominn. 645 00:36:00,240 --> 00:36:02,160 Nú get ég tekið stjórn-lína rök. 646 00:36:02,160 --> 00:36:02,430 OK. 647 00:36:02,430 --> 00:36:04,250 Tryggja að við erum að gefa tvær skrár. 648 00:36:04,250 --> 00:36:07,905 Þú getur gefið mér það eins og heilbrigður. 649 00:36:07,905 --> 00:36:09,180 >> STUDENT 18: Ef argc - 650 00:36:09,180 --> 00:36:11,060 þetta er ekki jafn 3. 651 00:36:11,060 --> 00:36:14,360 >> JASON Hirschhorn: Ef opna paren argc ekki jafn 3? 652 00:36:14,360 --> 00:36:16,970 >> STUDENT 18: Já, þú kemur aftur 1 eða eitthvað. 653 00:36:16,970 --> 00:36:17,460 >> JASON Hirschhorn: Því miður. 654 00:36:17,460 --> 00:36:19,120 >> STUDENT 18: Return 1 eða eitthvað. 655 00:36:19,120 --> 00:36:20,270 >> JASON Hirschhorn: Return 1. 656 00:36:20,270 --> 00:36:22,230 OK? 657 00:36:22,230 --> 00:36:22,970 Great. 658 00:36:22,970 --> 00:36:24,290 Opna bæði skrár. 659 00:36:24,290 --> 00:36:26,160 Hver getur hjálpað mér að opna bæði skrár? 660 00:36:26,160 --> 00:36:28,125 Hver hefur ekki gefið mér kóðann enn? 661 00:36:28,125 --> 00:36:31,510 662 00:36:31,510 --> 00:36:32,320 Kurt? 663 00:36:32,320 --> 00:36:36,145 >> KURT: Svo allar húfur F-I-L-E stjörnu uppspretta. 664 00:36:36,145 --> 00:36:39,390 665 00:36:39,390 --> 00:36:40,920 >> JASON Hirschhorn: Ég ætla að taka út sérhljóða. 666 00:36:40,920 --> 00:36:41,570 Þeir eru töff. 667 00:36:41,570 --> 00:36:42,716 Það er eins og Tumblr. 668 00:36:42,716 --> 00:36:44,610 >> STUDENT 18: Jafnt fopen - 669 00:36:44,610 --> 00:36:46,612 >> JASON Hirschhorn: Jafnt fopen? 670 00:36:46,612 --> 00:36:49,870 >> STUDENT 18: Opinn paren, argv, opið krappi. 671 00:36:49,870 --> 00:36:50,055 >> JASON Hirschhorn: Bíddu. 672 00:36:50,055 --> 00:36:50,240 Sorry. 673 00:36:50,240 --> 00:36:51,050 Open paren. 674 00:36:51,050 --> 00:36:51,456 OK. 675 00:36:51,456 --> 00:36:53,080 >> STUDENT 18: Já. 676 00:36:53,080 --> 00:36:55,110 Argv undir 1. 677 00:36:55,110 --> 00:36:55,860 >> JASON Hirschhorn: Sub 1? 678 00:36:55,860 --> 00:36:56,140 >> STUDENT 18: Já. 679 00:36:56,140 --> 00:36:58,540 Argv opinn krappi 1 - 680 00:36:58,540 --> 00:36:59,730 já. 681 00:36:59,730 --> 00:37:06,470 Og þá komma, og þá opinn tvöfaldur vitna, r, tvöfaldur vitna, 682 00:37:06,470 --> 00:37:08,250 loka paren, semíkommu. 683 00:37:08,250 --> 00:37:09,450 >> JASON Hirschhorn: Sweet. 684 00:37:09,450 --> 00:37:10,950 Og hvað um hinn? 685 00:37:10,950 --> 00:37:16,030 >> STUDENT 18: Mjög svipað, en í staðinn S-R-C, vilt þú kalla það d-S-T. 686 00:37:16,030 --> 00:37:17,060 >> JASON Hirschhorn: Oo! 687 00:37:17,060 --> 00:37:17,772 Mér líkar það. 688 00:37:17,772 --> 00:37:20,010 >> STUDENT 18: Just D-S-T. Já. 689 00:37:20,010 --> 00:37:23,057 Og þá argv, opið krappi, 2. 690 00:37:23,057 --> 00:37:23,200 Já. 691 00:37:23,200 --> 00:37:26,720 Og þá m í stað r. 692 00:37:26,720 --> 00:37:27,620 Já. 693 00:37:27,620 --> 00:37:29,630 >> JASON Hirschhorn: Great. 694 00:37:29,630 --> 00:37:31,360 Næsta par af línum. 695 00:37:31,360 --> 00:37:34,040 Einnig, ef einhver hefur það til að bæta við línur sem við höfum gert, ekki hika við að 696 00:37:34,040 --> 00:37:35,690 bæta þá eins og heilbrigður. 697 00:37:35,690 --> 00:37:37,520 Athugaðu að ganga úr skugga hvorki er NÚLL. 698 00:37:37,520 --> 00:37:41,450 Hver getur gefið mér kóðann sem ég þarf að uppfylla þessi lína af sauðakóðanum? 699 00:37:41,450 --> 00:37:44,430 700 00:37:44,430 --> 00:37:45,870 Archer. 701 00:37:45,870 --> 00:37:58,645 >> ARCHER: Ef src jafnt jafn NULL eða DST jafngildir jafn 702 00:37:58,645 --> 00:38:04,590 NULL, þá þú aftur - 703 00:38:04,590 --> 00:38:07,130 704 00:38:07,130 --> 00:38:07,976 >> JASON Hirschhorn: Hvað? 705 00:38:07,976 --> 00:38:08,890 >> ARCHER: Return 2? 706 00:38:08,890 --> 00:38:09,760 >> JASON Hirschhorn: Return 2. 707 00:38:09,760 --> 00:38:14,400 Þannig að ef opinn paren src jafngildir jafngildir NULL, eða - 708 00:38:14,400 --> 00:38:15,590 hvað sem thing's - pípa? 709 00:38:15,590 --> 00:38:16,346 Pípa? 710 00:38:16,346 --> 00:38:17,140 Við munum kalla það pípa. 711 00:38:17,140 --> 00:38:22,340 Pípa, pípa, DST jafngildir jafn NULL, skila 2. 712 00:38:22,340 --> 00:38:23,900 OK? 713 00:38:23,900 --> 00:38:26,060 Þar til við erum út af bæti - 714 00:38:26,060 --> 00:38:29,820 við sleppt svona yfir þetta skref frá að sauðakóðanum hluti til að fara til hér. 715 00:38:29,820 --> 00:38:31,970 >> En þangað til við erum út af bæti - hvað þýðir að hljóma? 716 00:38:31,970 --> 00:38:34,680 Hvaða tegund af C uppbygging - 717 00:38:34,680 --> 00:38:36,160 en ég er ekki að nota orðið uppbyggingu, vegna þess að við erum að fara að byrja að nota 718 00:38:36,160 --> 00:38:37,350 að í öðrum tilvikum - 719 00:38:37,350 --> 00:38:39,495 en C tól Hefur þessi hljóð eins og? 720 00:38:39,495 --> 00:38:39,970 >> STUDENT 19: Lykkja. 721 00:38:39,970 --> 00:38:40,980 >> JASON Hirschhorn: Lykkja. 722 00:38:40,980 --> 00:38:43,060 Hljómar eins og lykkju. 723 00:38:43,060 --> 00:38:49,670 Svo sem getur gefið mér fyrstu línu lykkja kóða hérna? 724 00:38:49,670 --> 00:38:56,320 725 00:38:56,320 --> 00:39:01,980 Þú getur einnig valið hvaða lykkja sem þú vilt, ef þú gefur mér 726 00:39:01,980 --> 00:39:03,215 Þessi lína af kóða. 727 00:39:03,215 --> 00:39:04,150 Það eru þrjár tegundir. 728 00:39:04,150 --> 00:39:06,530 Þú færð að velja. 729 00:39:06,530 --> 00:39:08,080 Ég myndi stinga upp á einn af þeim. 730 00:39:08,080 --> 00:39:08,410 Avi. 731 00:39:08,410 --> 00:39:09,230 Hver einn gera þú vilja? 732 00:39:09,230 --> 00:39:09,960 >> AVI: FOR. 733 00:39:09,960 --> 00:39:11,460 >> JASON Hirschhorn: FOR. 734 00:39:11,460 --> 00:39:15,180 >> AVI: int i jafn núlli. 735 00:39:15,180 --> 00:39:17,360 >> JASON Hirschhorn: OK. 736 00:39:17,360 --> 00:39:18,570 >> AVI: Þessi hluti sem ég er ekki viss um. 737 00:39:18,570 --> 00:39:29,080 En I er minni en stærð af stjörnu uppspretta? 738 00:39:29,080 --> 00:39:31,128 Ég er ekki viss um það. 739 00:39:31,128 --> 00:39:32,580 >> JASON Hirschhorn: OK. 740 00:39:32,580 --> 00:39:35,870 >> AVI: Þar sem þú vilt að skráar, ekki satt? 741 00:39:35,870 --> 00:39:41,090 >> JASON Hirschhorn: Svo þetta verður að öllum líkindum ekki gefa okkur stærð á raunverulegri 742 00:39:41,090 --> 00:39:43,010 skrá í bætum. 743 00:39:43,010 --> 00:39:47,680 Svo hvað getum við gert? 744 00:39:47,680 --> 00:39:48,810 Hvað er annars konar lykkju? 745 00:39:48,810 --> 00:39:50,180 Eða ættum við að standa með for lykkju? 746 00:39:50,180 --> 00:39:55,350 747 00:39:55,350 --> 00:39:57,900 >> STUDENT 20: Gætirðu gera meðan lykkja? 748 00:39:57,900 --> 00:40:01,350 Og þá, hvað þú vilt gera er you'd - 749 00:40:01,350 --> 00:40:03,930 vegna þess að við höfum char * skrárinnar. 750 00:40:03,930 --> 00:40:07,950 Þannig að ef við höldum bara incrementing að þar til við myndum finna NULL karakter í 751 00:40:07,950 --> 00:40:08,500 endirinn á því? 752 00:40:08,500 --> 00:40:11,130 Eða nei, er það ekki hvernig skrár virka? 753 00:40:11,130 --> 00:40:14,300 >> JASON Hirschhorn: Svo við getum haldið incrementing bleikjan * 754 00:40:14,300 --> 00:40:16,340 þar til við að finna NULL - 755 00:40:16,340 --> 00:40:18,580 >> STUDENT 20: meginatriðum halda áfram eðli með staf þar til við högg 756 00:40:18,580 --> 00:40:21,250 í lok skrárinnar. 757 00:40:21,250 --> 00:40:21,600 >> JASON Hirschhorn: Já. 758 00:40:21,600 --> 00:40:22,560 Svo það er það sem við viljum gera. 759 00:40:22,560 --> 00:40:24,545 Við viljum halda lestur, karakter með staf, þar til við fáum að 760 00:40:24,545 --> 00:40:25,080 í lok skrárinnar. 761 00:40:25,080 --> 00:40:25,375 >> STUDENT 20: Já. 762 00:40:25,375 --> 00:40:25,860 Finna - 763 00:40:25,860 --> 00:40:28,540 hvað er endir eða stöðva skilti í lok textaskrá. 764 00:40:28,540 --> 00:40:28,620 >> JASON Hirschhorn: OK. 765 00:40:28,620 --> 00:40:30,140 Svo þegar við komum til the endir af the skrá - hvernig vitum við að við höfum náð 766 00:40:30,140 --> 00:40:33,200 enda a skrá? 767 00:40:33,200 --> 00:40:34,710 Ef ég er að hringja - 768 00:40:34,710 --> 00:40:35,910 þannig að við skulum stíga til baka. 769 00:40:35,910 --> 00:40:37,550 Hvað er fall? 770 00:40:37,550 --> 00:40:39,360 Við skulum fara í þessa línu hérna. 771 00:40:39,360 --> 00:40:40,630 Lesið úr frumskrár. 772 00:40:40,630 --> 00:40:41,880 Hver getur gefið mér þessi lína af kóða? 773 00:40:41,880 --> 00:40:45,592 774 00:40:45,592 --> 00:40:47,590 >> STUDENT 21: Fscanf? 775 00:40:47,590 --> 00:40:49,110 >> JASON Hirschhorn: Fscanf. 776 00:40:49,110 --> 00:40:49,510 OK. 777 00:40:49,510 --> 00:40:52,240 Hvað ef ég vil lesa, mjög sérstaklega, eitt bæti? 778 00:40:52,240 --> 00:40:55,012 779 00:40:55,012 --> 00:40:56,860 >> Námsmaður 21: Ég veit það ekki. 780 00:40:56,860 --> 00:40:57,110 >> JASON Hirschhorn: OK. 781 00:40:57,110 --> 00:40:59,380 Jafnvel einfaldara en fscanf - hvað er - 782 00:40:59,380 --> 00:41:01,890 Mig langar að lesa úr frumskrár? 783 00:41:01,890 --> 00:41:03,720 Lesa úr frumskrár. 784 00:41:03,720 --> 00:41:04,850 Hvað er fall - já. 785 00:41:04,850 --> 00:41:05,380 >> Námsmaður 22: Það er fread? 786 00:41:05,380 --> 00:41:06,070 >> JASON Hirschhorn: Fread. 787 00:41:06,070 --> 00:41:07,550 Ég held við skulum standa með að einn nú. 788 00:41:07,550 --> 00:41:10,380 789 00:41:10,380 --> 00:41:13,650 Hvers konar rök er fread taka? 790 00:41:13,650 --> 00:41:17,410 >> STUDENT 22: Sennilega skrá tegund, og þá staðsetningu í skránni? 791 00:41:17,410 --> 00:41:19,550 >> JASON Hirschhorn: Hvað get ég pikka hér að reikna út hvaða gerð af rökum 792 00:41:19,550 --> 00:41:20,950 fread tekur? 793 00:41:20,950 --> 00:41:23,710 >> Margfeldi NEMENDUR: Man fread. 794 00:41:23,710 --> 00:41:24,740 >> JASON Hirschhorn: Man fread og fwrite. 795 00:41:24,740 --> 00:41:25,980 Lítur út eins og þeir hanga út saman. 796 00:41:25,980 --> 00:41:29,589 Svo tekur fread hversu mörg rök? 797 00:41:29,589 --> 00:41:30,920 >> STUDENT 23: Four. 798 00:41:30,920 --> 00:41:32,690 >> JASON Hirschhorn: Það tekur fjögur rök. 799 00:41:32,690 --> 00:41:41,100 Það tekur bendi, stærð, og að hlutur, sem er skrýtið, og sumir skrá. 800 00:41:41,100 --> 00:41:42,000 OK? 801 00:41:42,000 --> 00:41:43,990 Við skulum lesa um það hérna. 802 00:41:43,990 --> 00:41:49,370 "Fallið fread les n viðstaddir þættir af gögnum, hver stærð bœti 803 00:41:49,370 --> 00:41:53,840 langur, frá straumi benti á eftir streyma, geyma þá í stað 804 00:41:53,840 --> 00:41:56,170 gefið er með músina. " 805 00:41:56,170 --> 00:41:57,960 >> Svo fjórir rök. 806 00:41:57,960 --> 00:42:04,510 Hvers vegna get ég ekki afrita bara þetta, og límdu hana hérna. 807 00:42:04,510 --> 00:42:10,060 808 00:42:10,060 --> 00:42:10,770 OK. 809 00:42:10,770 --> 00:42:13,673 Svo sem getur byrjað að fylla út þessi rök fyrir mig? 810 00:42:13,673 --> 00:42:15,840 Avi. 811 00:42:15,840 --> 00:42:17,720 >> AVI: Taka út í tómarúm. 812 00:42:17,720 --> 00:42:20,530 Setja bara src. 813 00:42:20,530 --> 00:42:23,142 Taka út músina og stjörnu. 814 00:42:23,142 --> 00:42:26,102 Setja src. 815 00:42:26,102 --> 00:42:27,050 Þá - 816 00:42:27,050 --> 00:42:28,500 >> JASON Hirschhorn: Þannig að ég ætla að hætta þú þarna, því það er rangt. 817 00:42:28,500 --> 00:42:32,590 818 00:42:32,590 --> 00:42:34,710 Þú ert rétt með src, en hvar ætti src fara? 819 00:42:34,710 --> 00:42:35,960 >> [INTERPOSING raddir] 820 00:42:35,960 --> 00:42:38,976 821 00:42:38,976 --> 00:42:41,610 >> JASON Hirschhorn: Það ætti fara hérna. 822 00:42:41,610 --> 00:42:43,790 Það er src - src okkar er gerð. 823 00:42:43,790 --> 00:42:44,610 Við skulum líta hér. 824 00:42:44,610 --> 00:42:49,610 Þetta er að biðja um gerð skrá *, við reyndar yfirleitt sjá þá svona. 825 00:42:49,610 --> 00:42:57,630 Þannig að þetta er að biðja um rök tegund SKRÁ * heitir straum sem er src. 826 00:42:57,630 --> 00:42:58,480 OK? 827 00:42:58,480 --> 00:43:00,410 >> Hvaða stærð af hlutur við viljum lesa? 828 00:43:00,410 --> 00:43:03,340 Ég gaf þér þetta í vandamál lýsingu. 829 00:43:03,340 --> 00:43:04,370 >> STUDENT 24: Eitt bæti í einu. 830 00:43:04,370 --> 00:43:05,340 >> JASON Hirschhorn: Eitt bæti. 831 00:43:05,340 --> 00:43:08,205 Hversu stór er bæti? 832 00:43:08,205 --> 00:43:11,642 Stærð þess er í bætum, svo hvað get ég sett þarna? 833 00:43:11,642 --> 00:43:12,910 >> STUDENT 25: One. 834 00:43:12,910 --> 00:43:14,730 >> JASON Hirschhorn: Einn. 835 00:43:14,730 --> 00:43:17,020 Rétt. 836 00:43:17,020 --> 00:43:19,940 Stærð hennar er er í bæti, svo 1 er 1 bæti. 837 00:43:19,940 --> 00:43:22,284 Hversu margir gera ég vil lesa í einu. 838 00:43:22,284 --> 00:43:23,520 >> STUDENT 26: Einn? 839 00:43:23,520 --> 00:43:24,270 >> JASON Hirschhorn: Eitt. 840 00:43:24,270 --> 00:43:28,540 Mig langar að lesa eitt af stærð 1, einn biti í einu. 841 00:43:28,540 --> 00:43:32,110 Og þar fæ ég orðaði það, þegar ég las það? 842 00:43:32,110 --> 00:43:35,050 843 00:43:35,050 --> 00:43:36,510 >> STUDENT 27: Áfangastaður? 844 00:43:36,510 --> 00:43:39,270 >> JASON Hirschhorn: Svo ég get ekki sett það beint inn áfangastað. 845 00:43:39,270 --> 00:43:40,800 >> STUDENT 28: Þú ert ætla að setja það í þriðja músina? 846 00:43:40,800 --> 00:43:41,780 >> STUDENT 27: á áfangastað. 847 00:43:41,780 --> 00:43:42,270 >> JASON Hirschhorn: OK. 848 00:43:42,270 --> 00:43:42,630 Já. 849 00:43:42,630 --> 00:43:46,820 >> Námsmaður 29: Þú getur lýst eitthvað að starfa sem tímabundinn geymslustaður fyrr. 850 00:43:46,820 --> 00:43:47,350 >> JASON Hirschhorn: OK. 851 00:43:47,350 --> 00:43:50,080 Gefðu mér að. 852 00:43:50,080 --> 00:43:53,930 >> STUDENT 29: Annar skrá músina, kannski? 853 00:43:53,930 --> 00:43:54,220 >> JASON Hirschhorn: OK. 854 00:43:54,220 --> 00:43:55,585 Svo er þetta ógilt stjörnu - 855 00:43:55,585 --> 00:43:57,750 það er ein tegund ógilt stjörnu, svo það er ekki verða að vera a bendils. 856 00:43:57,750 --> 00:44:02,520 Og ef ég er að lesa eitt bæti, hvar væri góður staður 857 00:44:02,520 --> 00:44:03,850 að geyma eitt bæti? 858 00:44:03,850 --> 00:44:04,660 >> STUDENT 29: An array? 859 00:44:04,660 --> 00:44:05,770 >> JASON Hirschhorn: An array. 860 00:44:05,770 --> 00:44:07,730 OK. 861 00:44:07,730 --> 00:44:14,040 Og hvað annað er eitthvað sem er bara að stærð eitt bæti? 862 00:44:14,040 --> 00:44:16,980 863 00:44:16,980 --> 00:44:18,060 >> STUDENT 30: A char *? 864 00:44:18,060 --> 00:44:18,530 >> STUDENT 29: Já. 865 00:44:18,530 --> 00:44:19,880 >> JASON Hirschhorn: A char * er ekki eitt bæti. 866 00:44:19,880 --> 00:44:20,440 >> STUDENT 29: A bleikju. 867 00:44:20,440 --> 00:44:21,810 >> JASON Hirschhorn: A bleikju er eitt bæti. 868 00:44:21,810 --> 00:44:22,920 Satt? 869 00:44:22,920 --> 00:44:26,740 Svo skulum kalla þessa biðminni er almenn nafn notað þetta til þess að geyma 870 00:44:26,740 --> 00:44:27,910 eitthvað tímabundið. 871 00:44:27,910 --> 00:44:30,880 Svo ég búa til biðminni. 872 00:44:30,880 --> 00:44:31,150 Satt? 873 00:44:31,150 --> 00:44:32,990 En það er tekið ógilt *. 874 00:44:32,990 --> 00:44:38,660 Svo kannski þú ert rétt, að það ætti að vera stuðpúði af stærð 0. 875 00:44:38,660 --> 00:44:41,070 Svo það geymir einn - 876 00:44:41,070 --> 00:44:41,280 rétt. 877 00:44:41,280 --> 00:44:43,560 >> Vegna þess að þetta hérna - bleikju biðminni er eðli, en 878 00:44:43,560 --> 00:44:45,110 þetta tekur tómarúm * - 879 00:44:45,110 --> 00:44:45,870 bendillinn. 880 00:44:45,870 --> 00:44:50,640 Svo ég gæti gert þetta og nú jafnalausnin er músina. 881 00:44:50,640 --> 00:44:53,214 Hvað annað gat ég gert? 882 00:44:53,214 --> 00:44:55,775 >> STUDENT 31: Settu stjörnuna við bleikju. 883 00:44:55,775 --> 00:44:58,380 >> JASON Hirschhorn: Ég gat hafa skapað það char *. 884 00:44:58,380 --> 00:45:00,216 OK. 885 00:45:00,216 --> 00:45:03,131 Hvað er annað sem ég gæti gert? 886 00:45:03,131 --> 00:45:04,050 Eða við skulum fara með þessu. 887 00:45:04,050 --> 00:45:05,740 Char * biðminni, svo hvað set ég hér? 888 00:45:05,740 --> 00:45:08,290 889 00:45:08,290 --> 00:45:09,310 >> STUDENT 31: Buffer. 890 00:45:09,310 --> 00:45:10,560 >> JASON Hirschhorn: Buffer. 891 00:45:10,560 --> 00:45:12,640 892 00:45:12,640 --> 00:45:14,500 Buffer er bendi char. 893 00:45:14,500 --> 00:45:19,480 Og í þeim stað, við erum að setja eitt bæti af einhverju sem við höfum lesið. 894 00:45:19,480 --> 00:45:19,980 Já. 895 00:45:19,980 --> 00:45:20,700 Avi. 896 00:45:20,700 --> 00:45:21,230 >> AVI: Just a fljótur spurning. 897 00:45:21,230 --> 00:45:24,440 Viltu malloc biðminni? 898 00:45:24,440 --> 00:45:25,930 >> JASON Hirschhorn: Hver getur svara þeirri spurningu? 899 00:45:25,930 --> 00:45:30,210 >> STUDENT 32: Jæja, það er í raun ekki benda til nokkuð núna, svo - 900 00:45:30,210 --> 00:45:32,610 >> JASON Hirschhorn: En gera við viljum malloc það? 901 00:45:32,610 --> 00:45:35,600 >> STUDENT 32: Ef þú værir að gera það sem Þannig held ég, já, vegna þess að þú vilt þurfa 902 00:45:35,600 --> 00:45:36,990 sumir staður fyrir það að benda á. 903 00:45:36,990 --> 00:45:38,350 >> JASON Hirschhorn: Eigum við verða að malloc það? 904 00:45:38,350 --> 00:45:40,580 >> STUDENT 33: Ef þú ert að fara að nota það utan úr lykkja. 905 00:45:40,580 --> 00:45:42,524 >> JASON Hirschhorn: Erum við að fara að nota það utan lykkju? 906 00:45:42,524 --> 00:45:44,392 >> STUDENT 34: Já. 907 00:45:44,392 --> 00:45:44,860 >> STUDENT 35: Bíddu. 908 00:45:44,860 --> 00:45:46,980 Viljum við lýsa það í lykkju og hafa verið yfir? 909 00:45:46,980 --> 00:45:50,100 >> JASON Hirschhorn: Svo ég held að við höfum sumir gervi meðan lykkja hér að við erum 910 00:45:50,100 --> 00:45:51,950 reyna að reikna út, að við höfum ekki fengið að enn. 911 00:45:51,950 --> 00:45:54,710 912 00:45:54,710 --> 00:45:56,010 Við þurfum ekki að malloc það. 913 00:45:56,010 --> 00:45:59,310 Við erum að starfa í helstu, það er bara að fara til að nota í þessari lykkju. 914 00:45:59,310 --> 00:46:00,540 Það þarf ekki að vera til utan þetta. 915 00:46:00,540 --> 00:46:02,340 >> Svo það getur verið staðbundin breytu. 916 00:46:02,340 --> 00:46:03,925 Þú ert bendi á a heimamaður breytu. 917 00:46:03,925 --> 00:46:07,984 918 00:46:07,984 --> 00:46:09,590 >> STUDENT 36: En það er ekki benda til nokkuð. 919 00:46:09,590 --> 00:46:11,540 >> JASON Hirschhorn: Nei, það er ekki frumstilla að neinu. 920 00:46:11,540 --> 00:46:12,790 En við erum ekki að fara að nota það líka. 921 00:46:12,790 --> 00:46:15,300 Við erum að fara að setja eitthvað í það í fyrsta skipti sem við notum það. 922 00:46:15,300 --> 00:46:16,580 Svo virðist sem allt í lagi. 923 00:46:16,580 --> 00:46:17,780 Þannig að við þurfum ekki malloc hér. 924 00:46:17,780 --> 00:46:19,360 Og ég held að það er allt í lagi eins og er. 925 00:46:19,360 --> 00:46:24,350 926 00:46:24,350 --> 00:46:25,790 OK. 927 00:46:25,790 --> 00:46:27,190 Við höfum fread línu. 928 00:46:27,190 --> 00:46:28,490 Skulum gera næstu línu. 929 00:46:28,490 --> 00:46:32,984 >> Ef við viljum að skrifa í skrá, hvað er góð aðgerð til að nota til að gera það? 930 00:46:32,984 --> 00:46:33,770 >> STUDENT 37: fwrite? 931 00:46:33,770 --> 00:46:35,140 >> STUDENT 38: Fprintf? 932 00:46:35,140 --> 00:46:36,010 >> JASON Hirschhorn: Fprintf er einn. 933 00:46:36,010 --> 00:46:37,260 Hvað er annað? 934 00:46:37,260 --> 00:46:37,680 >> STUDENT 39: fwrite. 935 00:46:37,680 --> 00:46:38,510 >> JASON Hirschhorn: fwrite. 936 00:46:38,510 --> 00:46:41,250 Og með tilliti til okkar, fwrite, sem við sáum hér, er 937 00:46:41,250 --> 00:46:42,500 líklega betri kostur. 938 00:46:42,500 --> 00:46:51,970 939 00:46:51,970 --> 00:46:53,950 Það tekur fjórar rök eins og heilbrigður. 940 00:46:53,950 --> 00:46:57,570 Nishant, getur þú gefið mér rök? 941 00:46:57,570 --> 00:47:00,570 >> NISHANT: Going sá fyrsti er að vera bara biðminni. 942 00:47:00,570 --> 00:47:02,210 >> JASON Hirschhorn: OK. 943 00:47:02,210 --> 00:47:06,752 >> NISHANT: The second einn er bara að fara að vera 1. 944 00:47:06,752 --> 00:47:09,510 Þriðja einn er að fara að vera 1. 945 00:47:09,510 --> 00:47:11,470 Og fjórða einn er að fara að vera DST. 946 00:47:11,470 --> 00:47:18,010 947 00:47:18,010 --> 00:47:19,550 >> JASON Hirschhorn: Hefur einhver hafa einhverjar spurningar um þessi lína? 948 00:47:19,550 --> 00:47:28,370 949 00:47:28,370 --> 00:47:29,130 Sem lítur vel út. 950 00:47:29,130 --> 00:47:29,590 OK. 951 00:47:29,590 --> 00:47:34,250 Svo nú lítur það eins og eitt við erum vantar - reyndar, við skulum skrifa 952 00:47:34,250 --> 00:47:35,090 þessari síðustu línu. 953 00:47:35,090 --> 00:47:36,300 Loka skrá. 954 00:47:36,300 --> 00:47:38,880 Sem getur klárað okkur upp skrif þessar síðustu tvær línur? 955 00:47:38,880 --> 00:47:39,120 Já. 956 00:47:39,120 --> 00:47:39,850 Því miður, hvað er nafn þitt? 957 00:47:39,850 --> 00:47:40,580 >> LUCY: Lucy. 958 00:47:40,580 --> 00:47:41,580 >> JASON Hirschhorn: Lucy. 959 00:47:41,580 --> 00:47:47,560 >> LUCY: fclose src og þá fclose áfangastað. 960 00:47:47,560 --> 00:47:52,430 >> JASON Hirschhorn: fclose, opið paren, src, loka paren, semíkommu. 961 00:47:52,430 --> 00:47:53,680 Og fclose - 962 00:47:53,680 --> 00:47:57,560 963 00:47:57,560 --> 00:47:58,090 já? 964 00:47:58,090 --> 00:48:01,710 >> LUCY: Open sviga, DST og þá semíkommu. 965 00:48:01,710 --> 00:48:02,520 >> JASON Hirschhorn: Great. 966 00:48:02,520 --> 00:48:04,338 Og hvað ætti ég að hafa á endanum? 967 00:48:04,338 --> 00:48:05,210 >> LUCY: return 0. 968 00:48:05,210 --> 00:48:05,570 >> JASON Hirschhorn: return 0. 969 00:48:05,570 --> 00:48:06,820 Þarf ég að? 970 00:48:06,820 --> 00:48:10,560 971 00:48:10,560 --> 00:48:12,590 Bara spurning. 972 00:48:12,590 --> 00:48:14,957 Þurfum við að fela return 0? 973 00:48:14,957 --> 00:48:16,240 >> Margfeldi NEMENDUR: Nei 974 00:48:16,240 --> 00:48:16,430 >> JASON Hirschhorn: Nei 975 00:48:16,430 --> 00:48:18,090 Helsta er það sjálfkrafa ef þú fá til the endir. 976 00:48:18,090 --> 00:48:20,580 En ég held að það er gott að fela það sérstaklega. 977 00:48:20,580 --> 00:48:23,860 Sérstaklega þegar við erum að aftur aðra hlutir meðan áætlunin. 978 00:48:23,860 --> 00:48:24,810 OK. 979 00:48:24,810 --> 00:48:26,230 Þetta er það sem við erum vantar - 980 00:48:26,230 --> 00:48:28,520 MEÐAN hvað? 981 00:48:28,520 --> 00:48:31,630 Sem hægt er að hugsa af sumum - 982 00:48:31,630 --> 00:48:35,240 hefur eitthvað vit á því hvað hlutirnir gæti farið í það? 983 00:48:35,240 --> 00:48:37,350 Jafnvel ef það er bara á einhvern sauðakóðanum eins og tungumál? 984 00:48:37,350 --> 00:48:41,330 >> Hvað erum við í raun - hvað viljum við fara þangað? 985 00:48:41,330 --> 00:48:41,980 Já, Lucy. 986 00:48:41,980 --> 00:48:43,240 >> LUCY: The endir skjals. 987 00:48:43,240 --> 00:48:44,990 >> JASON Hirschhorn: The endir skjals. 988 00:48:44,990 --> 00:48:49,280 Svo hvað áttu við lok skrá? 989 00:48:49,280 --> 00:48:50,955 >> LUCY: Þegar þú hefur náð að lok skrárinnar, hætta. 990 00:48:50,955 --> 00:48:51,240 >> JASON Hirschhorn: OK. 991 00:48:51,240 --> 00:48:53,460 Svo þegar við náum lok skrárinnar. 992 00:48:53,460 --> 00:48:56,893 Hvernig vitum við þegar við höfum náð í lok skrárinnar? 993 00:48:56,893 --> 00:48:59,900 >> STUDENT 40: Ég held biðminni verður að vera stillt á NÚLL. 994 00:48:59,900 --> 00:49:01,885 >> Námsmaður 41: Buffer er lýst inni í lykkju. 995 00:49:01,885 --> 00:49:03,670 >> JASON Hirschhorn: Svo þú heldur biðminni verður að vera stillt á NÚLL. 996 00:49:03,670 --> 00:49:05,850 Hvers vegna vildi biðminni vera stillt á núll? 997 00:49:05,850 --> 00:49:10,420 >> STUDENT 40: Því þegar þú fread, þú ert að reyna að setja 998 00:49:10,420 --> 00:49:13,528 ekkert í buffer. 999 00:49:13,528 --> 00:49:13,980 >> JASON Hirschhorn: OK. 1000 00:49:13,980 --> 00:49:15,550 Svo þú ert að hugsa fread - 1001 00:49:15,550 --> 00:49:19,000 þegar við höfum náð í lok skrá, hvað er fread að fara að gera? 1002 00:49:19,000 --> 00:49:21,230 Ég held að það er spurningin við þurfum að reikna út. 1003 00:49:21,230 --> 00:49:21,960 Hvað þýðir fread gera? 1004 00:49:21,960 --> 00:49:25,640 Er það að setja NULL í biðminni eða er það ekki eitthvað annað? 1005 00:49:25,640 --> 00:49:27,510 Hvernig getum við fundið út hvað það er? 1006 00:49:27,510 --> 00:49:28,190 >> STUDENT 42: Man. 1007 00:49:28,190 --> 00:49:28,810 >> JASON Hirschhorn: Man. 1008 00:49:28,810 --> 00:49:32,280 Svo skulum líta hérna. 1009 00:49:32,280 --> 00:49:34,000 Skilagildi. 1010 00:49:34,000 --> 00:49:39,620 Á velgengni, fread og fwrite skila fjöldi atriða lesið eða skrifað. 1011 00:49:39,620 --> 00:49:43,700 Þessi fjöldi er fjöldi bæti flutt aðeins þegar stærð er 1. 1012 00:49:43,700 --> 00:49:47,780 Ef villa kemur, eða í lok skrá er náð, skilagildi er 1013 00:49:47,780 --> 00:49:51,490 stutt atriði telja eða 0. 1014 00:49:51,490 --> 00:49:57,860 >> Svo fyrir tilgangi okkar, ef fread nær í lok skrárinnar, og les úr 1015 00:49:57,860 --> 00:50:02,100 í lok skrá, það er ekkert eftir að lesa, hvað er það að fara að koma aftur? 1016 00:50:02,100 --> 00:50:03,290 >> STUDENT 43: Zero? 1017 00:50:03,290 --> 00:50:04,540 >> JASON Hirschhorn: Hvað? 1018 00:50:04,540 --> 00:50:05,300 >> STUDENT 43: Zero? 1019 00:50:05,300 --> 00:50:05,690 >> JASON Hirschhorn: Zero. 1020 00:50:05,690 --> 00:50:06,940 Það er að fara að skila núll. 1021 00:50:06,940 --> 00:50:09,360 1022 00:50:09,360 --> 00:50:13,010 Þannig að við vitum að fread, þegar við höfum náð í lok skrárinnar, er að fara 1023 00:50:13,010 --> 00:50:13,690 að skila núll. 1024 00:50:13,690 --> 00:50:17,460 Hvernig getum við notað það til að nýta okkar? 1025 00:50:17,460 --> 00:50:21,733 >> AVI: Þú getur lýst breytu utan lykkja kallast stöðva. 1026 00:50:21,733 --> 00:50:27,040 Ef stöðva jafningjar - 1027 00:50:27,040 --> 00:50:28,190 nú - einn. 1028 00:50:28,190 --> 00:50:28,920 >> JASON Hirschhorn: OK. 1029 00:50:28,920 --> 00:50:38,050 >> AVI: Og þá er hægt að setja if yfirlýsingu rétt eftir fread segja ef 1030 00:50:38,050 --> 00:50:42,600 fread jafn núlli - 1031 00:50:42,600 --> 00:50:43,850 nr. 1032 00:50:43,850 --> 00:50:46,002 1033 00:50:46,002 --> 00:50:47,252 >> JASON Hirschhorn: Hver getur hjálpað avi út? 1034 00:50:47,252 --> 00:50:49,690 1035 00:50:49,690 --> 00:50:52,410 >> AVI: Hvað er virði skilað fread? 1036 00:50:52,410 --> 00:50:54,060 >> JASON Hirschhorn: Við bara fór yfir það. 1037 00:50:54,060 --> 00:50:55,450 >> AVI: Hvernig heldur þú að tákna það? 1038 00:50:55,450 --> 00:50:57,190 >> JASON Hirschhorn: Svo það skilar - við skulum líta upp hér - það skilar 1039 00:50:57,190 --> 00:50:59,340 size_t, sem er í meginatriðum heiltala. 1040 00:50:59,340 --> 00:51:02,240 1041 00:51:02,240 --> 00:51:03,410 Svo það skilar heiltölu. 1042 00:51:03,410 --> 00:51:05,160 Og í okkar tilfelli, það verður skila 1 eða 0 - 1043 00:51:05,160 --> 00:51:08,760 1 ef það lesa eitt - eitt bæti, og 0 ef við höfum náð enda. 1044 00:51:08,760 --> 00:51:13,560 1045 00:51:13,560 --> 00:51:16,450 Þannig að ef fread - 1046 00:51:16,450 --> 00:51:16,855 já? 1047 00:51:16,855 --> 00:51:20,330 >> STUDENT 45: ekki hægt að setja bara fullt fread (TAG, 1, 1, src) inn í 1048 00:51:20,330 --> 00:51:21,660 en lykkja? 1049 00:51:21,660 --> 00:51:26,510 >> JASON Hirschhorn: Svo þú leggur gera þetta í það? 1050 00:51:26,510 --> 00:51:27,600 >> [INTERPOSING raddir] 1051 00:51:27,600 --> 00:51:29,520 >> JASON Hirschhorn: Bíddu. 1052 00:51:29,520 --> 00:51:30,885 Þannig að við erum ridding af því. 1053 00:51:30,885 --> 00:51:33,300 Svo þú ert að leggja til að setja fread inn þarna? 1054 00:51:33,300 --> 00:51:35,457 Hvað eigum við að fara líka ef þú vilt gera það? 1055 00:51:35,457 --> 00:51:36,740 >> STUDENT 45: The biðminni utan. 1056 00:51:36,740 --> 00:51:38,110 >> JASON Hirschhorn: Við ættum einnig færa þetta út hér. 1057 00:51:38,110 --> 00:51:41,700 >> STUDENT 45: En þýðir það stöðugt færa það áfram? 1058 00:51:41,700 --> 00:51:42,950 >> [INTERPOSING raddir] 1059 00:51:42,950 --> 00:51:46,540 1060 00:51:46,540 --> 00:51:47,470 >> JASON Hirschhorn: OK. 1061 00:51:47,470 --> 00:51:50,570 Svo er þetta það Okshar lagt. 1062 00:51:50,570 --> 00:51:51,930 Við búum til biðminni okkar. 1063 00:51:51,930 --> 00:51:57,020 Við MEÐAN fread, þá erum fwrite. 1064 00:51:57,020 --> 00:51:59,760 Hugsanir um þetta? 1065 00:51:59,760 --> 00:52:04,050 >> STUDENT 46: Aðeins spurning mín er, myndi það framkvæma í raun stjórn fread? 1066 00:52:04,050 --> 00:52:06,175 >> JASON Hirschhorn: Great spurning. 1067 00:52:06,175 --> 00:52:11,050 Þegar þú ert að setja inn fall hringja inni í ástandi, er að 1068 00:52:11,050 --> 00:52:12,300 virka kalla keyra? 1069 00:52:12,300 --> 00:52:15,760 1070 00:52:15,760 --> 00:52:17,770 Við höfum séð dæmi um þetta áður. 1071 00:52:17,770 --> 00:52:24,900 1072 00:52:24,900 --> 00:52:25,660 Satt? 1073 00:52:25,660 --> 00:52:26,125 >> STUDENT 46: OK. 1074 00:52:26,125 --> 00:52:26,590 Já. 1075 00:52:26,590 --> 00:52:30,140 Svo er það að framkvæma. 1076 00:52:30,140 --> 00:52:31,790 >> JASON Hirschhorn: Við höfum séð það svona áður, þar sem við höfum 1077 00:52:31,790 --> 00:52:33,550 kalla virka inni í ástandi. 1078 00:52:33,550 --> 00:52:35,540 Er að virka kalla keyra? 1079 00:52:35,540 --> 00:52:36,350 Já. 1080 00:52:36,350 --> 00:52:37,410 Svo svarið er já. 1081 00:52:37,410 --> 00:52:41,010 Þessi aðgerð kalla mun framkvæma. 1082 00:52:41,010 --> 00:52:42,418 En aftur, það er það sem við viljum? 1083 00:52:42,418 --> 00:52:49,250 1084 00:52:49,250 --> 00:52:52,204 >> Hvað er ein leið að við gætum fundið út ef það er það sem við viljum? 1085 00:52:52,204 --> 00:52:53,470 >> Margfeldi NEMENDUR: Setja það? 1086 00:52:53,470 --> 00:52:54,460 >> JASON Hirschhorn: Við gætum keyrt það. 1087 00:52:54,460 --> 00:52:57,500 En áður en við gerum það, við gátum einnig ástæðu gegnum þetta. 1088 00:52:57,500 --> 00:52:57,920 Ef - 1089 00:52:57,920 --> 00:53:01,920 segja að við höfum eitt bæti í okkar skrá, við munum komast að hér, 1090 00:53:01,920 --> 00:53:02,660 við munum komast að þessum kóða. 1091 00:53:02,660 --> 00:53:03,620 Þetta mun birtast. 1092 00:53:03,620 --> 00:53:07,780 fread mun skila eitt bæti og geyma það í buffer. 1093 00:53:07,780 --> 00:53:11,290 Og þetta mun meta til 1, rétt, eftir að hann skilar 1. 1094 00:53:11,290 --> 00:53:12,640 >> Svo á meðan 1. 1095 00:53:12,640 --> 00:53:15,325 Þýðir kóðann inni while lykkja mun framkvæma? 1096 00:53:15,325 --> 00:53:15,453 >> STUDENT 47: Já. 1097 00:53:15,453 --> 00:53:16,040 Það er satt. 1098 00:53:16,040 --> 00:53:16,290 >> JASON Hirschhorn: Já. 1099 00:53:16,290 --> 00:53:17,490 1 er satt. 1100 00:53:17,490 --> 00:53:18,240 Það er ekki 0. 1101 00:53:18,240 --> 00:53:20,360 Svo kóðann inni hér mun framkvæma. 1102 00:53:20,360 --> 00:53:22,300 Þannig að við munum skrifa það. 1103 00:53:22,300 --> 00:53:25,340 Við munum fara aftur til þessa lína einu sinni enn. 1104 00:53:25,340 --> 00:53:26,850 Nú höfum við - 1105 00:53:26,850 --> 00:53:28,550 við erum í lok skrá okkar. 1106 00:53:28,550 --> 00:53:30,980 Við að lesa frá lok skrá okkar, vegna þess að við höfðum aðeins eitt bæti í það. 1107 00:53:30,980 --> 00:53:34,270 >> Fread skilar 0, verslanir eitthvað í buffer. 1108 00:53:34,270 --> 00:53:35,890 Ég heiðarlega veit ekki hvað það geymir í biðminni. 1109 00:53:35,890 --> 00:53:38,380 Við gætum sennilega líta upp til að sjá hvað það gerir. 1110 00:53:38,380 --> 00:53:40,130 Að ég heiðarlega veit ekki. 1111 00:53:40,130 --> 00:53:43,090 Við vitum ekki, hver er ekki sama hvað það geymir í biðminni? 1112 00:53:43,090 --> 00:53:44,010 En það þýðir aftur á 0. 1113 00:53:44,010 --> 00:53:45,440 Og mun á meðan 0 framkvæma? 1114 00:53:45,440 --> 00:53:49,950 1115 00:53:49,950 --> 00:53:51,180 >> MEÐAN 0 mun ekki framkvæma. 1116 00:53:51,180 --> 00:53:54,030 Svo þá munum við fara niður hér. 1117 00:53:54,030 --> 00:53:58,870 Svo skulum við fá sýningu á hendur, ef þetta er kóðinn sem við ætti að keyra, eða ef við 1118 00:53:58,870 --> 00:54:00,140 ættu að gera breytingar fyrst. 1119 00:54:00,140 --> 00:54:02,180 Þannig að ef þú heldur - þú þarft að greiða atkvæði. 1120 00:54:02,180 --> 00:54:06,885 Ef þú heldur að við ættum að keyra þennan kóða sem er, skaltu hækka hönd þína. 1121 00:54:06,885 --> 00:54:12,440 1122 00:54:12,440 --> 00:54:13,400 >> OK. 1123 00:54:13,400 --> 00:54:14,315 Það er eitt - 1124 00:54:14,315 --> 00:54:17,260 þú ert með spurningu, áhyggjur? 1125 00:54:17,260 --> 00:54:18,080 Já. 1126 00:54:18,080 --> 00:54:21,240 >> STUDENT 48: Eftir að við færa biðminni utan úr lykkja, gera við 1127 00:54:21,240 --> 00:54:22,670 verða að malloc það? 1128 00:54:22,670 --> 00:54:23,310 >> JASON Hirschhorn: Great spurning. 1129 00:54:23,310 --> 00:54:26,670 Eftir að við færa biðminni utan af lykkja, eigum við að malloc það? 1130 00:54:26,670 --> 00:54:28,400 Þetta er umfang spurning. 1131 00:54:28,400 --> 00:54:32,130 Ef við frumstilla biðminni utan þessarar lykkju, mun það vera til 1132 00:54:32,130 --> 00:54:33,534 inni í lykkju? 1133 00:54:33,534 --> 00:54:35,230 >> Margfeldi NEMENDUR: Já. 1134 00:54:35,230 --> 00:54:35,580 >> JASON Hirschhorn: Já. 1135 00:54:35,580 --> 00:54:40,100 Umfang hennar nær inni í lykkju, og, í raun, nokkuð fyrir neðan það inni 1136 00:54:40,100 --> 00:54:42,460 þessa kóða, þ.mt hlutunum á haus hérna. 1137 00:54:42,460 --> 00:54:43,930 Þannig að við þurfum ekki að malloc það. 1138 00:54:43,930 --> 00:54:47,766 Það er staðbundin breytu, og umfang hennar enn nær lykkju. 1139 00:54:47,766 --> 00:54:49,540 >> STUDENT 49: Þurfum að losa það? 1140 00:54:49,540 --> 00:54:51,770 >> JASON Hirschhorn: Eigum við þarf að losa biðminni? 1141 00:54:51,770 --> 00:54:53,860 >> STUDENT 49: Já, ef við gerum ekki malloc. 1142 00:54:53,860 --> 00:54:55,750 >> JASON Hirschhorn: Eigum við þarf að losa biðminni? 1143 00:54:55,750 --> 00:54:57,160 Við gerum ekki. 1144 00:54:57,160 --> 00:55:01,280 Aftur, er það heimamaður breytu, þannig að við þurfum ekki að losa hana. 1145 00:55:01,280 --> 00:55:02,170 OK. 1146 00:55:02,170 --> 00:55:03,480 Við skulum sjá hvað gerist. 1147 00:55:03,480 --> 00:55:17,290 1148 00:55:17,290 --> 00:55:18,220 Svo það er ekki forsniðinn. 1149 00:55:18,220 --> 00:55:20,830 Það var það sem eitthvað sem Marcus lagði fyrr. 1150 00:55:20,830 --> 00:55:25,340 Þannig að við höfum að villa, breyta biðminni er ekki forsniðinn þegar það er notað hér. 1151 00:55:25,340 --> 00:55:26,590 >> Hvernig getum við lagað þetta? 1152 00:55:26,590 --> 00:55:29,460 1153 00:55:29,460 --> 00:55:30,960 >> STUDENT 50: Malloc það? 1154 00:55:30,960 --> 00:55:31,770 >> STUDENT 51: Jafnt NULL? 1155 00:55:31,770 --> 00:55:33,000 >> STUDENT 52: Segja biðminni jafngildir NULL. 1156 00:55:33,000 --> 00:55:34,250 >> JASON Hirschhorn: OK. 1157 00:55:34,250 --> 00:55:40,040 1158 00:55:40,040 --> 00:55:40,770 Lítur vel út. 1159 00:55:40,770 --> 00:55:42,410 Við höfum það núna. 1160 00:55:42,410 --> 00:55:45,630 Skulum skapa eitthvað til að reyna afritun. 1161 00:55:45,630 --> 00:56:08,990 1162 00:56:08,990 --> 00:56:10,490 Þannig að við höfum textaskrá okkar. 1163 00:56:10,490 --> 00:56:11,740 Hvernig getum við keyrt þetta forrit? 1164 00:56:11,740 --> 00:56:14,140 1165 00:56:14,140 --> 00:56:15,472 Já. 1166 00:56:15,472 --> 00:56:22,230 >> Námsmaður 53: Þú getur gert punkt rista CP, test.txt. 1167 00:56:22,230 --> 00:56:25,140 Og þá er hægt að nefna aðra skrá þar sem það verður að geyma í. 1168 00:56:25,140 --> 00:56:25,510 >> JASON Hirschhorn: OK. 1169 00:56:25,510 --> 00:56:27,380 Við munum kalla það out.txt. 1170 00:56:27,380 --> 00:56:28,630 Cool? 1171 00:56:28,630 --> 00:56:31,700 1172 00:56:31,700 --> 00:56:34,320 Seg kenna. 1173 00:56:34,320 --> 00:56:35,570 Hugsanir á seg kenna? 1174 00:56:35,570 --> 00:56:40,900 1175 00:56:40,900 --> 00:56:41,390 Þetta er frábært. 1176 00:56:41,390 --> 00:56:45,040 Hvernig getum við fundið út hvar sem seg kenna er? 1177 00:56:45,040 --> 00:56:45,680 Hvað? 1178 00:56:45,680 --> 00:56:45,990 >> STUDENT 54: gdb. 1179 00:56:45,990 --> 00:56:47,240 >> JASON Hirschhorn: gdb. 1180 00:56:47,240 --> 00:56:51,400 1181 00:56:51,400 --> 00:56:55,300 Hlaupum gdb með því að skrifa gdb punktur rista, nafn program okkar. 1182 00:56:55,300 --> 00:56:57,020 Engin stjórn lína rifrildi þar. 1183 00:56:57,020 --> 00:56:59,570 Við ætlum að setja breakpoint á helstu. 1184 00:56:59,570 --> 00:57:02,190 Ef ég vil byrja gdb, hvað á ég að gera? 1185 00:57:02,190 --> 00:57:02,730 >> STUDENT 55: R. 1186 00:57:02,730 --> 00:57:08,910 >> JASON Hirschhorn: R. Og hvað þá? 1187 00:57:08,910 --> 00:57:09,400 >> STUDENT 55: Rök? 1188 00:57:09,400 --> 00:57:10,650 >> JASON Hirschhorn: Þá stjórn-lína rifrildi. 1189 00:57:10,650 --> 00:57:15,890 1190 00:57:15,890 --> 00:57:17,120 Skulum ganga í gegnum. 1191 00:57:17,120 --> 00:57:19,090 N er bara að taka mér línu fyrir línu. 1192 00:57:19,090 --> 00:57:21,450 Ég ætla að fara þangað Ég fæ seg mér að kenna. 1193 00:57:21,450 --> 00:57:22,700 Það er seg mér að kenna. 1194 00:57:22,700 --> 00:57:24,960 1195 00:57:24,960 --> 00:57:27,875 Það lítur út eins fread völdum seg mér að kenna. 1196 00:57:27,875 --> 00:57:30,570 1197 00:57:30,570 --> 00:57:32,770 Ég veit fread olli seg mér að kenna, vegna þess að það var 1198 00:57:32,770 --> 00:57:34,950 línu við keyrð bara. 1199 00:57:34,950 --> 00:57:36,530 >> Og það eina sem var gerast í þeirri línu - 1200 00:57:36,530 --> 00:57:37,520 tveir hlutir voru að gerast. 1201 00:57:37,520 --> 00:57:40,610 Fread var að fara, og þá vorum við gera sumir á meðan að haka. 1202 00:57:40,610 --> 00:57:44,820 Ég er tilbúin að veðja að á meðan stöðva var ekki að valda seg mér að kenna. 1203 00:57:44,820 --> 00:57:46,950 Líklegast, fread var veldur seg mér að kenna. 1204 00:57:46,950 --> 00:57:49,260 Ég sé einnig eitthvað hér, memcopy. 1205 00:57:49,260 --> 00:57:50,500 >> Minni afrita. 1206 00:57:50,500 --> 00:57:53,820 Hljómar eins og að flytja minni frá einum stað til annars. 1207 00:57:53,820 --> 00:57:56,890 Hljómar eins og eitthvað sem myndi gerast í fread, kannski sumir minni 1208 00:57:56,890 --> 00:57:58,910 flytja héðan til hér. 1209 00:57:58,910 --> 00:58:01,740 1210 00:58:01,740 --> 00:58:03,860 Förum í gegnum þetta aftur. 1211 00:58:03,860 --> 00:58:06,900 Hvernig byrja ég það yfir og keyra það aftur? 1212 00:58:06,900 --> 00:58:08,092 Já. 1213 00:58:08,092 --> 00:58:15,140 >> STUDENT 56: Ert þú þarft að setja merkið áður biðminni? 1214 00:58:15,140 --> 00:58:17,800 >> JASON Hirschhorn: Svo merkið áður biðminni myndi gefa mér veffang 1215 00:58:17,800 --> 00:58:22,330 stuðpúða, sem er char *. 1216 00:58:22,330 --> 00:58:25,250 Við skulum hlaupa í gegnum þetta einu sinni enn. 1217 00:58:25,250 --> 00:58:28,248 Hvernig keyri ég í gegnum það einu sinni enn? 1218 00:58:28,248 --> 00:58:29,210 >> STUDENT 57: Getur þú bara tegund hlaupa aftur? 1219 00:58:29,210 --> 00:58:32,050 >> JASON Hirschhorn: Réttlátur tegund hlaupa aftur. 1220 00:58:32,050 --> 00:58:33,415 Þannig að við erum ekki að fara að framkvæma þessa línu. 1221 00:58:33,415 --> 00:58:36,250 1222 00:58:36,250 --> 00:58:39,240 Svo er biðminni NULL músina. 1223 00:58:39,240 --> 00:58:40,490 Rétt? 1224 00:58:40,490 --> 00:58:45,870 1225 00:58:45,870 --> 00:58:47,060 Það bendir til - við skulum sjá. 1226 00:58:47,060 --> 00:58:48,500 Ef við höfum okkar - 1227 00:58:48,500 --> 00:58:50,430 teikna a fljótur mynd af þessu. 1228 00:58:50,430 --> 00:58:53,500 Geta allir séð hvort Ég skrifa hérna? 1229 00:58:53,500 --> 00:59:02,890 >> Svo í stafla, höfum við á staðnum breytilegir og það er kallað buffer, og 1230 00:59:02,890 --> 00:59:08,230 það er bendi á char. 1231 00:59:08,230 --> 00:59:10,325 Hvaða heimilisfang er þetta char á? 1232 00:59:10,325 --> 00:59:12,550 >> STUDENT 58: 0x0. 1233 00:59:12,550 --> 00:59:13,400 >> JASON Hirschhorn: Hægri. 1234 00:59:13,400 --> 00:59:14,200 Það er það sem þetta er. 1235 00:59:14,200 --> 00:59:17,600 Í hér, inni buffer, er geymt 0x0. 1236 00:59:17,600 --> 00:59:20,480 Það er það sem við höfum - við skipulag sem við höfum núna. 1237 00:59:20,480 --> 00:59:27,540 Þannig að fyrirsögnin, fread, setur eitthvað frá uppspretta hvar? 1238 00:59:27,540 --> 00:59:30,560 Inn í þennan kassa eða þessum kassa? 1239 00:59:30,560 --> 00:59:31,060 Hvaða kassi? 1240 00:59:31,060 --> 00:59:33,290 Vinstri kassi eða hægri kassi? 1241 00:59:33,290 --> 00:59:34,750 Þessi réttur kassi. 1242 00:59:34,750 --> 00:59:38,440 >> Það fylgir músina, og setur það í hér. 1243 00:59:38,440 --> 00:59:42,620 Þegar við reynum og snerta minni á Staðsetning 0, hvað fáum við? 1244 00:59:42,620 --> 00:59:45,050 A skiptingu kenna. 1245 00:59:45,050 --> 00:59:46,550 Það er villa við höfum núna. 1246 00:59:46,550 --> 00:59:46,970 Já. 1247 00:59:46,970 --> 00:59:48,410 >> STUDENT 59: Ert þú ekki hafa að setja stjörnu biðminni? 1248 00:59:48,410 --> 00:59:49,180 Eða nei? 1249 00:59:49,180 --> 00:59:50,050 Fyrir fread? 1250 00:59:50,050 --> 00:59:51,450 >> JASON Hirschhorn: Svo fread tekur músina. 1251 00:59:51,450 --> 00:59:54,920 1252 00:59:54,920 --> 00:59:55,900 Svo það fer í biðminni. 1253 00:59:55,900 --> 00:59:58,980 Og þá verður það de-tilvísun það einhvers staðar inni fread. 1254 00:59:58,980 --> 01:00:00,700 En aftur, við sáum það tekur músina. 1255 01:00:00,700 --> 01:00:02,560 Við þurfum ekki að fara framhjá það stjörnu biðminni. 1256 01:00:02,560 --> 01:00:05,350 Sem myndi vera brottför það hvað er hér. 1257 01:00:05,350 --> 01:00:07,980 Og það myndi líklega gefa okkur villu vegna þess að við erum de-tilvísun það. 1258 01:00:07,980 --> 01:00:08,150 >> Satt? 1259 01:00:08,150 --> 01:00:10,690 Þegar við de-tilvísun þetta bendi, þegar við reynum að fá aðgang að þessum stað, 1260 01:00:10,690 --> 01:00:13,140 við erum að fá villu - skiptingu kenna. 1261 01:00:13,140 --> 01:00:15,800 Svo - 1262 01:00:15,800 --> 01:00:16,690 oops. 1263 01:00:16,690 --> 01:00:19,090 Við erum að fara að hætta út af gdb. 1264 01:00:19,090 --> 01:00:20,160 Línu okkar - 1265 01:00:20,160 --> 01:00:22,990 vandamál okkar - er rétt hér á þessari línu. 1266 01:00:22,990 --> 01:00:26,410 Og það er vandamál vegna þess að þessa línu. 1267 01:00:26,410 --> 01:00:31,780 >> Hvernig getum við búið til kassa sem er aðgengilegt á fread. 1268 01:00:31,780 --> 01:00:31,980 Satt? 1269 01:00:31,980 --> 01:00:35,190 Við þurfum að búa til kassa sem er einn bæti stór, á stærð við bleikju. 1270 01:00:35,190 --> 01:00:38,590 En við þurfum að kassi til að vera aðgengileg Þegar þessi aðgerð framkvæmd. 1271 01:00:38,590 --> 01:00:39,390 Svo þar - 1272 01:00:39,390 --> 01:00:39,640 já. 1273 01:00:39,640 --> 01:00:40,440 Einhverjar hugmyndir? 1274 01:00:40,440 --> 01:00:43,615 >> STUDENT 60: Bara setja það eins og allir handahófi staf. 1275 01:00:43,615 --> 01:00:49,150 1276 01:00:49,150 --> 01:00:51,640 Bara gera char biðminni Jafnt eðli. 1277 01:00:51,640 --> 01:00:53,795 Og þá, þegar þú hefur biðminni þar - 1278 01:00:53,795 --> 01:00:54,110 >> JASON Hirschhorn: Bíddu. 1279 01:00:54,110 --> 01:00:55,110 Char biðminni? 1280 01:00:55,110 --> 01:00:55,880 Svo engin stjarna? 1281 01:00:55,880 --> 01:00:56,390 >> STUDENT 60: Já. 1282 01:00:56,390 --> 01:00:58,560 Taka út stjörnuna. 1283 01:00:58,560 --> 01:01:00,690 Jafnt handahófi staf. 1284 01:01:00,690 --> 01:01:01,460 >> JASON Hirschhorn: OK. 1285 01:01:01,460 --> 01:01:02,420 Svo gefa mér eitt. 1286 01:01:02,420 --> 01:01:03,170 >> STUDENT 60: Eins eða eitthvað. 1287 01:01:03,170 --> 01:01:06,160 Og svo þegar þú hefur biðminni þar notarðu - 1288 01:01:06,160 --> 01:01:06,420 >> STUDENT 61: Star? 1289 01:01:06,420 --> 01:01:07,650 Ó nei, merkið. 1290 01:01:07,650 --> 01:01:09,000 >> STUDENT 60: Notaðu merkið án. 1291 01:01:09,000 --> 01:01:09,470 >> JASON Hirschhorn: OK. 1292 01:01:09,470 --> 01:01:11,320 Og hvað um í fwrite? 1293 01:01:11,320 --> 01:01:14,150 >> STUDENT 60: Notaðu merkið án aftur. 1294 01:01:14,150 --> 01:01:14,320 >> JASON Hirschhorn: Allt í lagi. 1295 01:01:14,320 --> 01:01:20,970 Svo er hugmynd þín, við að búa til char og setja eitthvað í það, og þá 1296 01:01:20,970 --> 01:01:22,612 skrifa til bleikju. 1297 01:01:22,612 --> 01:01:23,760 >> STUDENT 60: Já. 1298 01:01:23,760 --> 01:01:25,916 >> JASON Hirschhorn: Hvað gera fólk hugsa? 1299 01:01:25,916 --> 01:01:27,770 >> Námsmaður 62: Það er undinn. 1300 01:01:27,770 --> 01:01:28,460 >> JASON Hirschhorn: OK. 1301 01:01:28,460 --> 01:01:29,760 Skulum draga það út. 1302 01:01:29,760 --> 01:01:35,720 Svo í þetta sinn, ég ætla að draga þetta í rautt á mánudaginn hér, og þá erum við 1303 01:01:35,720 --> 01:01:36,410 mun hafa - 1304 01:01:36,410 --> 01:01:36,822 ooh! 1305 01:01:36,822 --> 01:01:38,060 Sorry. 1306 01:01:38,060 --> 01:01:45,930 Svo í þetta sinn höfum við eitthvað sem kallast dúa, og það er á stafla. 1307 01:01:45,930 --> 01:01:48,430 Rétt? 1308 01:01:48,430 --> 01:01:51,520 Og við erum að spara í það, fyrst um sinn. 1309 01:01:51,520 --> 01:01:53,830 >> Þá höfum við kalla okkar til fread. 1310 01:01:53,830 --> 01:02:01,300 Hvað fread gerir er að það tekur bæti úr skrá okkar og setur það einhvers staðar. 1311 01:02:01,300 --> 01:02:04,570 Það setur það í hvað sem hlutur er bendir til. 1312 01:02:04,570 --> 01:02:09,130 Jæja, áður en við höfðum þetta netfang - 1313 01:02:09,130 --> 01:02:10,250 0x0. 1314 01:02:10,250 --> 01:02:13,349 Nú hvaða tölu höfum við? 1315 01:02:13,349 --> 01:02:14,650 >> STUDENT 63: Hvað vistfang jafnalausnin er. 1316 01:02:14,650 --> 01:02:15,970 >> JASON Hirschhorn: Whatever vistfang jafnalausnin er. 1317 01:02:15,970 --> 01:02:22,370 Það er líklega að fara að vera eitthvað svoleiðis. 1318 01:02:22,370 --> 01:02:26,950 Líklega að fara að byrja með b og er F, og þá hafa sex öðrum 1319 01:02:26,950 --> 01:02:27,970 sextánskur tölustafir. 1320 01:02:27,970 --> 01:02:28,480 Skiptir ekki máli. 1321 01:02:28,480 --> 01:02:29,470 Sumir heimilisfang. 1322 01:02:29,470 --> 01:02:31,410 Og við erum liggur þetta netfang inn 1323 01:02:31,410 --> 01:02:34,790 >> Og við erum að fara að setja eitt okkar bæti hlutur á þetta netfang. 1324 01:02:34,790 --> 01:02:38,470 Þannig að við erum að fara að setja eitt okkar bæti hlutur inni hér. 1325 01:02:38,470 --> 01:02:40,800 Og þá erum við að fara að skrifa frá hvað er alltaf inni hér. 1326 01:02:40,800 --> 01:02:43,425 1327 01:02:43,425 --> 01:02:45,380 Hefur einhver hefur einhverjar spurningar um það? 1328 01:02:45,380 --> 01:02:50,990 1329 01:02:50,990 --> 01:02:54,690 Sem hugsar þetta kóði mun virka? 1330 01:02:54,690 --> 01:02:56,020 >> Hækka hönd þína ef þú heldur Þessi kóði mun virka. 1331 01:02:56,020 --> 01:02:57,270 Þú þarft að taka afstöðu. 1332 01:02:57,270 --> 01:03:00,670 1333 01:03:00,670 --> 01:03:02,500 Og sem hugsar þetta númer mun ekki virka? 1334 01:03:02,500 --> 01:03:04,610 Hækka hönd þína. 1335 01:03:04,610 --> 01:03:06,750 Allir aðrir ættu að vera hækka hönd þeirra. 1336 01:03:06,750 --> 01:03:07,670 OK. 1337 01:03:07,670 --> 01:03:09,390 Michael, hvar ert þú að standa? 1338 01:03:09,390 --> 01:03:10,680 >> MICHAEL: Ég get ekki ákveðið. 1339 01:03:10,680 --> 01:03:12,070 Konar í miðju. 1340 01:03:12,070 --> 01:03:12,736 >> JASON Hirschhorn: Þú ert í miðju. 1341 01:03:12,736 --> 01:03:13,092 Velja einn. 1342 01:03:13,092 --> 01:03:14,400 >> MICHAEL: Ég hef trú og segja að það muni vinna. 1343 01:03:14,400 --> 01:03:14,660 >> JASON Hirschhorn: OK. 1344 01:03:14,660 --> 01:03:16,047 Þú munt hafa trú og segja að það virkar? 1345 01:03:16,047 --> 01:03:26,490 1346 01:03:26,490 --> 01:03:27,020 Hvað gerðist? 1347 01:03:27,020 --> 01:03:28,270 >> [INTERPOSING raddir] 1348 01:03:28,270 --> 01:03:35,170 1349 01:03:35,170 --> 01:03:35,950 >> JASON Hirschhorn: Nei seg kenna. 1350 01:03:35,950 --> 01:03:40,320 Hvernig getum við að athuga hvort tveir hlutir eru jafnir? 1351 01:03:40,320 --> 01:03:42,060 Tvær skrár eru jafnir. 1352 01:03:42,060 --> 01:03:43,300 >> STUDENT 64: Diff. 1353 01:03:43,300 --> 01:03:45,490 >> JASON Hirschhorn: Diff. 1354 01:03:45,490 --> 01:03:51,630 Breyting stöðva fyrir mismunandi milli tvær skrár, og ef það skilar 1355 01:03:51,630 --> 01:03:52,890 ekkert, þá eru þeir eins. 1356 01:03:52,890 --> 01:03:59,030 Og ef við opnað upp, fáum við skrá okkar. 1357 01:03:59,030 --> 01:04:00,490 Svo það var rétt lausn. 1358 01:04:00,490 --> 01:04:01,780 Skulum líta aftur á það einu sinni enn. 1359 01:04:01,780 --> 01:04:04,080 Við gerðum reyndar ekki einu sinni þarf að frumstilla hana. 1360 01:04:04,080 --> 01:04:05,520 >> Það myndi líklega líta dálítið hreinni ef þú did ekki setja 1361 01:04:05,520 --> 01:04:07,680 eitthvað af handahófi þar. 1362 01:04:07,680 --> 01:04:13,070 Aðalatriðið sé, að þú þurftir að búa nokkur pláss til að geyma eitthvað af 1363 01:04:13,070 --> 01:04:15,530 fread og taka eitthvað út af fwrite. 1364 01:04:15,530 --> 01:04:18,400 Og þessi hlutur þurfti að vera annað hvort á staðnum breytu á mánudaginn - þú 1365 01:04:18,400 --> 01:04:19,890 hefði getað malloc'd pláss. 1366 01:04:19,890 --> 01:04:23,030 >> Þannig að við í raun gætu haft skrifað malloc hér, og 1367 01:04:23,030 --> 01:04:25,420 sem hefði unnið. 1368 01:04:25,420 --> 01:04:28,660 Og þá myndum við hafa verið að geyma dótið okkar einhvers staðar á hrúga. 1369 01:04:28,660 --> 01:04:31,940 En þetta er í raun, líklega, mest glæsilegur lausn. 1370 01:04:31,940 --> 01:04:34,490 Bara búa til nokkur pláss á stafla fyrir þetta að fara. 1371 01:04:34,490 --> 01:04:37,690 1372 01:04:37,690 --> 01:04:38,990 >> Ég myndi hafa tvær aðrar athugasemdir. 1373 01:04:38,990 --> 01:04:44,650 Ef þú værir að taka beygju í þessu, og þá fá skorað á þessu, athugasemdir mínar 1374 01:04:44,650 --> 01:04:47,400 myndi vera eins og hér segir. 1375 01:04:47,400 --> 01:04:54,300 Þessir 1 er hér, að mér, líta eins og galdur númer. 1376 01:04:54,300 --> 01:04:56,860 Þetta 1, í skilmálar af fread, vit. 1377 01:04:56,860 --> 01:04:59,580 Það er ýmislegt að lesa eða skrifa. 1378 01:04:59,580 --> 01:05:03,740 >> En þetta hérna ætti líklega verið eitthvað annað. 1379 01:05:03,740 --> 01:05:05,180 Svo er það ein lausn? 1380 01:05:05,180 --> 01:05:06,545 >> STUDENT 65: Stærð bæti. 1381 01:05:06,545 --> 01:05:10,100 1382 01:05:10,100 --> 01:05:11,080 >> JASON Hirschhorn: Svona? 1383 01:05:11,080 --> 01:05:13,130 >> STUDENT 65: Stærð bleikju. 1384 01:05:13,130 --> 01:05:13,820 >> JASON Hirschhorn: Stærð bleikju. 1385 01:05:13,820 --> 01:05:15,290 Já, bæti er ekki gerð. 1386 01:05:15,290 --> 01:05:16,320 Svo stærð af bleikju verkum. 1387 01:05:16,320 --> 01:05:30,270 Við gætu haft, efst á númerið okkar, # skilgreint það. 1388 01:05:30,270 --> 01:05:33,410 Heitir eitthvað bæti-og það er eiginlega bara bleikju. 1389 01:05:33,410 --> 01:05:37,675 Reyndar, jafnvel betri nálgun gæti hafa verið þetta - 1390 01:05:37,675 --> 01:05:39,391 UINT. 1391 01:05:39,391 --> 01:05:40,780 Hver veit hvað þetta er? 1392 01:05:40,780 --> 01:05:44,388 1393 01:05:44,388 --> 01:05:44,840 >> Sorry. 1394 01:05:44,840 --> 01:05:46,090 Ég hef það aftur á bak. 1395 01:05:46,090 --> 01:05:51,620 1396 01:05:51,620 --> 01:05:52,200 Bíddu, nei. 1397 01:05:52,200 --> 01:05:53,450 Hvaða leið er það að fara? 1398 01:05:53,450 --> 01:05:58,071 1399 01:05:58,071 --> 01:05:59,660 Hver veit hvað þetta er? 1400 01:05:59,660 --> 01:06:00,950 Já. 1401 01:06:00,950 --> 01:06:05,650 >> Námsmaður 67: átti að hjálpa staðla yfir kerfi hluti sem 1402 01:06:05,650 --> 01:06:08,760 hafa - eins óundirritaður heiltölur sem hafa 8 bæti? 1403 01:06:08,760 --> 01:06:11,785 >> JASON Hirschhorn: Það er nákvæmlega rétt. 1404 01:06:11,785 --> 01:06:14,310 Á mismunandi vélar, á stærð við stafir - 1405 01:06:14,310 --> 01:06:15,180 yfirleitt ekki bleikju. 1406 01:06:15,180 --> 01:06:16,100 Stafir eru yfirleitt eitt bæti. 1407 01:06:16,100 --> 01:06:19,590 En stærð annarra gerðir gagna eru mismunandi stærðir á 32-bita vél 1408 01:06:19,590 --> 01:06:21,370 á móti 64-bita vél. 1409 01:06:21,370 --> 01:06:25,180 A uint8_t er alltaf 8 bitar - 1410 01:06:25,180 --> 01:06:27,210 alltaf eitt bæti. 1411 01:06:27,210 --> 01:06:29,580 >> Og ég þarf að fela í sér að staðall Int hausaskrár. 1412 01:06:29,580 --> 01:06:35,040 Svo nú, þetta hefði líklega verið besta leiðin til að skrifa þennan kóða. 1413 01:06:35,040 --> 01:06:40,160 1414 01:06:40,160 --> 01:06:41,450 Svo ég losna við galdra númer. 1415 01:06:41,450 --> 01:06:44,690 Og ég hef líka meira rökrétt slá til biðminni. 1416 01:06:44,690 --> 01:06:49,450 Það er einfaldlega ekki bleikju, það er bæti, sem er það sem við búast við það til vera. 1417 01:06:49,450 --> 01:06:53,400 >> Og allt hérna, höfum við í raun verið hluti fleiri sterkur. 1418 01:06:53,400 --> 01:06:55,190 Við erum ekki að kalla það bleikju, sem - 1419 01:06:55,190 --> 01:06:58,630 kannski, hver veit - gæti verið öðruvísi stærð á mismunandi vélar. 1420 01:06:58,630 --> 01:07:02,025 Við erum í raun að segja þetta er nákvæmlega eitt bæti, alltaf, sama hvað. 1421 01:07:02,025 --> 01:07:05,810 Og ef við lítum hér, gera við sbr. 1422 01:07:05,810 --> 01:07:08,340 Uh-oh. 1423 01:07:08,340 --> 01:07:09,590 Hvað gerðist? 1424 01:07:09,590 --> 01:07:14,470 1425 01:07:14,470 --> 01:07:16,170 >> Námsmaður 68: Það gæti verið kveikt. 1426 01:07:16,170 --> 01:07:17,880 >> JASON Hirschhorn: Hvað? 1427 01:07:17,880 --> 01:07:19,130 >> STUDENT 69: Er það? 1428 01:07:19,130 --> 01:07:21,940 1429 01:07:21,940 --> 01:07:25,080 >> STUDENT 70: Þú varst ekki skilgreina hana sem tegund. 1430 01:07:25,080 --> 01:07:28,684 >> STUDENT 71: En það ætti verið skilgreind í staðlinum. 1431 01:07:28,684 --> 01:07:29,934 >> Námsmaður 72: Hvað er að gerast? 1432 01:07:29,934 --> 01:07:37,660 1433 01:07:37,660 --> 01:07:40,210 >> STUDENT 73: Ætti að skilgreina vera allar húfur? 1434 01:07:40,210 --> 01:07:41,370 >> JASON Hirschhorn: Svo það er ekki # skilgreina. 1435 01:07:41,370 --> 01:07:45,490 Reyndar, í þessu tilfelli, er ég fara að nota typedef. 1436 01:07:45,490 --> 01:07:48,590 Þar sem við erum að nota það sem gerð á einum stað. 1437 01:07:48,590 --> 01:07:51,990 Svo í þessu tilfelli, við viljum í raun og veru að typedef eins og við erum að prenta nýja tegund 1438 01:07:51,990 --> 01:07:54,490 bæti, og það er í raun, þetta. 1439 01:07:54,490 --> 01:07:56,590 Það er dálítið öðruvísi en # skilgreina. 1440 01:07:56,590 --> 01:08:02,740 >> Og nú, númerið okkar virkar fullkomlega. 1441 01:08:02,740 --> 01:08:05,230 Svo aftur, # define tekur eitthvað, stað það alls staðar 1442 01:08:05,230 --> 01:08:06,780 með annar hlutur. 1443 01:08:06,780 --> 01:08:07,920 Það er bara þjóðhagsleg - 1444 01:08:07,920 --> 01:08:09,420 styttingin til að losna við galdra númer. 1445 01:08:09,420 --> 01:08:11,360 En í þessu tilfelli, vegna þess að við erum nota það sem tegund - 1446 01:08:11,360 --> 01:08:12,180 hérna - 1447 01:08:12,180 --> 01:08:19,880 í röð fyrir það að vinna, við þurfum að typedef hvað bæti er. 1448 01:08:19,880 --> 01:08:21,840 >> Og við erum að skilgreina það hérna. 1449 01:08:21,840 --> 01:08:24,750 Það er ekki strúktúr, það er í raun bara að óundirritaður heiltölu. 1450 01:08:24,750 --> 01:08:27,680 Það er eitt bæti lengi. 1451 01:08:27,680 --> 01:08:31,910 Þessi kóði mun vera laus online, og þið öll að hafa það núna. 1452 01:08:31,910 --> 01:08:33,830 >> Þannig að við höfum - 1453 01:08:33,830 --> 01:08:34,250 fullkominn - 1454 01:08:34,250 --> 01:08:41,359 13 mínútur eftir til að fara yfir Heimadæmi 5. 1455 01:08:41,359 --> 01:08:44,270 Ég vil ganga í gegnum copy.c saman, og þá munum við tala stuttlega 1456 01:08:44,270 --> 01:08:47,120 um aðra hluta á vandamálinu stillt. 1457 01:08:47,120 --> 01:08:48,899 Svo láta mig draga upp copy.c. 1458 01:08:48,899 --> 01:09:03,930 1459 01:09:03,930 --> 01:09:08,810 Og kaldur hlutur er, við höfum í raun þegar skrifað mikið af þessum kóða. 1460 01:09:08,810 --> 01:09:11,180 >> The merkjamál við skrifuðum bókstaflega bara kom út hér þegar ég var 1461 01:09:11,180 --> 01:09:13,120 skrifa þetta á mína eigin. 1462 01:09:13,120 --> 01:09:16,990 En þetta er copy.c, myndar grundvöll fyrir fyrstu tvo hluta 1463 01:09:16,990 --> 01:09:22,340 vandamálið sett whodunit.c, sem þú þarft að skrifa, og resize.c. 1464 01:09:22,340 --> 01:09:27,050 Recover.c, sem er þriðja og síðasta hluti af vandamálinu setja, er ekki 1465 01:09:27,050 --> 01:09:29,529 byggt burt af þessari skrá. 1466 01:09:29,529 --> 01:09:32,200 >> Þú ert að fara að þurfa að skrifa þessi skrá, við gefum þér sniðmát fyrir það 1467 01:09:32,200 --> 01:09:34,620 skrá, en það hefur ekkert að gera með copy.c. 1468 01:09:34,620 --> 01:09:38,675 En vegna þess copy.c er grundvöllur Fyrstu tveir hlutar, við erum að fara 1469 01:09:38,675 --> 01:09:42,000 að ganga í gegnum það núna, svo þú hefur góða tilfinningu fyrir hvað það gerir. 1470 01:09:42,000 --> 01:09:43,640 >> Og athugasemdir gefa eitthvað af því í burtu. 1471 01:09:43,640 --> 01:09:45,120 Við höfum nú þegar skrifað eitthvað af þessu. 1472 01:09:45,120 --> 01:09:49,220 Fyrst erum við að tryggja við fáum þrjú rök. 1473 01:09:49,220 --> 01:09:50,560 Næst erum við að muna að skrá nafn. 1474 01:09:50,560 --> 01:09:52,960 Þannig að við sleppt þessu skrefi þegar við dulmáli hlutur okkar - 1475 01:09:52,960 --> 01:09:54,700 þegar sbr okkar. 1476 01:09:54,700 --> 01:09:56,750 En hér, þá eru þeir að gera það svolítið hreinni. 1477 01:09:56,750 --> 01:09:59,350 >> Þeir eru að skoða til að ganga úr skugga um bæði skrár eru góð, í 1478 01:09:59,350 --> 01:10:00,450 viðbót til að opna þá. 1479 01:10:00,450 --> 01:10:04,760 Við skrifaði allt þetta númer bara núna, svo ég er ekki að fara að búa á þessum kóða. 1480 01:10:04,760 --> 01:10:09,670 Næst er smá dót sem er sérstaklega við þær tegundir af skrám við erum að nota, sem 1481 01:10:09,670 --> 01:10:12,240 eru punktamynd skrá. 1482 01:10:12,240 --> 01:10:15,660 Punktamynd skrá hafa sumir lýsigögn í tengslum við þá. 1483 01:10:15,660 --> 01:10:20,190 >> Þannig að fyrsta par sem bæti segja ykkur frá skrá. 1484 01:10:20,190 --> 01:10:23,460 Þeir eru ekki litirnir pixla í þeirri mynd. 1485 01:10:23,460 --> 01:10:25,120 Þeir segja þér um skrá. 1486 01:10:25,120 --> 01:10:28,220 Og ef þú lest í gegnum Heimadæmi, þú munt hafa miklu meiri upplýsingar 1487 01:10:28,220 --> 01:10:33,100 á hvaða tegundir af lýsigögn mannvirki eru með bitmaps. 1488 01:10:33,100 --> 01:10:39,350 >> En það er hvers vegna við höfum þetta fyrsta setja af - þessum kóða hérna. 1489 01:10:39,350 --> 01:10:42,490 Við erum að lesa lýsigögn - 1490 01:10:42,490 --> 01:10:45,800 tvö stykki af lýsigögn - the skrá haus og upplýsa haus. 1491 01:10:45,800 --> 01:10:51,030 Og við erum að skoða nokkrar hluta af því að ganga úr skugga um að það er satt punktamynd skrá 1492 01:10:51,030 --> 01:10:52,420 en lengra er haldið. 1493 01:10:52,420 --> 01:10:55,470 >> Og aftur, eru þessar upplýsingar við þarft ekki að fara inn núna. 1494 01:10:55,470 --> 01:10:57,720 Ef þú lest í gegnum Heimadæmi, þú verður að skilja þetta. 1495 01:10:57,720 --> 01:11:01,370 Löng saga stutt, þetta eru bara að segja, þetta er punktamynd skrá, og 1496 01:11:01,370 --> 01:11:02,810 staðfestir það. 1497 01:11:02,810 --> 01:11:05,180 >> Næst erum við að skrifa þær við út skrá. 1498 01:11:05,180 --> 01:11:05,660 Við sjáum það hér. 1499 01:11:05,660 --> 01:11:06,910 Við erum að skrifa til út músina. 1500 01:11:06,910 --> 01:11:09,260 1501 01:11:09,260 --> 01:11:11,320 Næst erum við að ákvarða padding. 1502 01:11:11,320 --> 01:11:15,240 Svo aftur, sem er sérkenni með punktamynd skrá, fela einhverjum línur 1503 01:11:15,240 --> 01:11:16,840 bólstrun í lokin. 1504 01:11:16,840 --> 01:11:19,000 Og ef þú lest í gegnum Heimadæmi, þú munt læra meira um padding. 1505 01:11:19,000 --> 01:11:22,330 Þetta er uppskrift til að finna tróð. 1506 01:11:22,330 --> 01:11:23,610 >> Mikilvægt að muna - 1507 01:11:23,610 --> 01:11:29,720 þegar þú breytir stærð punktamynd skrá, padding breytingar. 1508 01:11:29,720 --> 01:11:31,970 Þegar þú breytir stærð við skrá, padding breytingar. 1509 01:11:31,970 --> 01:11:34,310 Það er aldrei að fara að vera meiri en 3 - 1510 01:11:34,310 --> 01:11:36,510 það verður 0 til 3, að báðum meðtöldum. 1511 01:11:36,510 --> 01:11:38,930 En þegar þú breytir stærð eitthvað, padding breytingar. 1512 01:11:38,930 --> 01:11:47,100 >> Ef ég hef bara eitt pixla í röðinni, ég þurfa þrjú bæti af padding, því 1513 01:11:47,100 --> 01:11:51,190 Hver röð þarf að vera margfeldi af fjórum bæti í punktamynd skrá. 1514 01:11:51,190 --> 01:11:56,120 En ef ég tvöfalda það, að fara úr einu pixla til tveggja punkta, sem hvert um sig, 1515 01:11:56,120 --> 01:11:59,510 segjum, er bæti, þá þarf ég tvö bæti af padding að gera 1516 01:11:59,510 --> 01:12:00,970 sem jafn fjórum. 1517 01:12:00,970 --> 01:12:04,200 >> Svo þegar ég breytt stærð af einhverju, Ég þarf að breyta upphæð 1518 01:12:04,200 --> 01:12:06,551 af padding að ég hef. 1519 01:12:06,551 --> 01:12:08,100 Er að skynsamleg að öllum? 1520 01:12:08,100 --> 01:12:12,020 1521 01:12:12,020 --> 01:12:18,720 Næst, iterate við yfir hverri röð, eða í gegnum allar línur. 1522 01:12:18,720 --> 01:12:21,400 Og þá erum við iterate gegnum hver dálkur í hverri röð. 1523 01:12:21,400 --> 01:12:25,330 Við erum að meðhöndla þessa punktamynd eins rist, eins og við höfum meðhöndlað 1524 01:12:25,330 --> 01:12:26,490 stjórnin í 15. 1525 01:12:26,490 --> 01:12:29,200 >> Eins og við meðferð múrsteinn þegar Við prentuðum þær á skjánum. 1526 01:12:29,200 --> 01:12:31,350 A rist af línum og dálkum. 1527 01:12:31,350 --> 01:12:32,350 Þá - við sáum þetta. 1528 01:12:32,350 --> 01:12:33,840 Við reyndar bara dulmáli þetta. 1529 01:12:33,840 --> 01:12:35,780 Við bjuggum nokkur tímabundna geymslu. 1530 01:12:35,780 --> 01:12:38,710 Við að lesa í það, og þá við að skrifa það út. 1531 01:12:38,710 --> 01:12:42,680 Þetta er einmitt það sem við gerðum bara. 1532 01:12:42,680 --> 01:12:46,760 >> Næst, því ég sagði hver lína endar í sumum padding, við 1533 01:12:46,760 --> 01:12:48,260 sleppa yfir þessi padding - 1534 01:12:48,260 --> 01:12:51,000 gamla padding. 1535 01:12:51,000 --> 01:12:52,630 Og þá erum við að bæta hana aftur. 1536 01:12:52,630 --> 01:12:55,140 Í þessu tilfelli erum við að skapa sama nákvæmlega skrá. 1537 01:12:55,140 --> 01:12:56,180 Við erum bara að afrita það. 1538 01:12:56,180 --> 01:12:57,700 Svo er þetta lína konar vitleysu. 1539 01:12:57,700 --> 01:12:59,660 Við gátum bókstaflega bara setja padding inn 1540 01:12:59,660 --> 01:13:04,290 >> En ef þú breytir stærð af the skrá, viltu samt þessa línu? 1541 01:13:04,290 --> 01:13:08,510 1542 01:13:08,510 --> 01:13:11,560 Þannig að ef við breyta stærð af a skrá, við viljum samt að sleppa 1543 01:13:11,560 --> 01:13:12,810 yfir gamla padding? 1544 01:13:12,810 --> 01:13:15,170 1545 01:13:15,170 --> 01:13:15,970 >> STUDENT 74: Já. 1546 01:13:15,970 --> 01:13:17,090 >> JASON Hirschhorn: Svo við gerum. 1547 01:13:17,090 --> 01:13:19,290 Því þetta, aftur, tilboð með frumskrár. 1548 01:13:19,290 --> 01:13:21,570 Við gerum ekki sama um padding frá upptökum skrá. 1549 01:13:21,570 --> 01:13:23,410 Við viljum fara í næstu línu. 1550 01:13:23,410 --> 01:13:28,850 En við gerum ekki einfaldlega setja aftur gamla magn af padding. 1551 01:13:28,850 --> 01:13:31,540 Við þurfum að setja til baka Ný magn af padding. 1552 01:13:31,540 --> 01:13:35,810 >> Svo þegar við erum að breyta stærð á skrá, viljum við enn að sleppa yfir 1553 01:13:35,810 --> 01:13:38,270 bólstrun í gamla skrá - hvað við erum að lesa í úr. 1554 01:13:38,270 --> 01:13:40,370 En það sem við erum að skrifa til, við erum að fara að þurfa að setja aftur nokkur mismunandi 1555 01:13:40,370 --> 01:13:41,890 fjöldi padding sem við höfum ákveðið. 1556 01:13:41,890 --> 01:13:42,780 Já. 1557 01:13:42,780 --> 01:13:44,550 >> STUDENT 75: Röð af þessum tveimur línur skiptir ekki máli, ekki satt? 1558 01:13:44,550 --> 01:13:46,160 Þar sem þú ert að meðhöndla mismunandi skrár. 1559 01:13:46,160 --> 01:13:46,620 >> JASON Hirschhorn: Einmitt. 1560 01:13:46,620 --> 01:13:48,220 Röð af þessum tveimur línum skiptir ekki máli. 1561 01:13:48,220 --> 01:13:49,790 Við að skrifa þessa línu. 1562 01:13:49,790 --> 01:13:51,430 Þetta er hér fyrir skrána við erum að skrifa á. 1563 01:13:51,430 --> 01:13:54,370 Það er mikilvægt, svo við fáum rétt magn af padding. 1564 01:13:54,370 --> 01:13:57,560 Þetta verður að takast með í skránni. 1565 01:13:57,560 --> 01:13:58,560 Við viljum sleppa hægri yfir padding. 1566 01:13:58,560 --> 01:13:59,470 >> Við viljum ekki að lesa - 1567 01:13:59,470 --> 01:14:01,500 ef við erum að lesa bæti í einu, við alveg sama um þá, padding bæti. 1568 01:14:01,500 --> 01:14:04,070 Okkur langar að flytja í næstu línu. 1569 01:14:04,070 --> 01:14:11,800 Loksins bara eins og Lucy gaf fyrir okkur, við loka skrá og skila 0. 1570 01:14:11,800 --> 01:14:13,890 Svo er þetta copy.c. 1571 01:14:13,890 --> 01:14:17,850 Og við skrifuðum reyndar - við eyddum mest af kafla að skrifa þetta, í raun. 1572 01:14:17,850 --> 01:14:18,740 >> Þú gerðir þetta. 1573 01:14:18,740 --> 01:14:22,440 Svo vonandi að þú hefur gott vit hvað er að gerast hérna. 1574 01:14:22,440 --> 01:14:25,890 Stóri munurinn, heiðarleika, er bara þessum fyrsta hluta sem fæst við 1575 01:14:25,890 --> 01:14:29,970 sérkenni punktamynd skrá. 1576 01:14:29,970 --> 01:14:33,570 Þannig að ég hef eins og næstu glæru minn, hvað þurfum við að gera? 1577 01:14:33,570 --> 01:14:35,510 Jæja, við skulum hugsa um whodunit. 1578 01:14:35,510 --> 01:14:38,080 >> Og fyrir einhvern sem lesa í gegnum vandamálið sett, hvað gerum við 1579 01:14:38,080 --> 01:14:41,410 þarf að gera í whodunit? 1580 01:14:41,410 --> 01:14:42,080 Einfaldlega. 1581 01:14:42,080 --> 01:14:42,460 Aleja. 1582 01:14:42,460 --> 01:14:48,570 >> ALEJA: Getur þú tekið út hluta af hverju pixla sem táknar rauð. 1583 01:14:48,570 --> 01:14:49,730 Og þá - 1584 01:14:49,730 --> 01:14:50,730 konar? 1585 01:14:50,730 --> 01:14:51,860 >> JASON Hirschhorn: OK. 1586 01:14:51,860 --> 01:14:54,460 Svo taka út hluta hvers pixla sem táknar rauð. 1587 01:14:54,460 --> 01:14:57,234 Það er nálægt, en ekki minna en það. 1588 01:14:57,234 --> 01:14:59,780 >> STUDENT 76: Jæja, það er mismunandi leiðir til að gera það. 1589 01:14:59,780 --> 01:14:59,870 >> JASON Hirschhorn: OK. 1590 01:14:59,870 --> 01:15:03,070 Gefðu mér eina leið. 1591 01:15:03,070 --> 01:15:08,240 >> STUDENT 76: Taka út alla rauða og þá leggja áherslu á bláa og græna. 1592 01:15:08,240 --> 01:15:10,010 >> JASON Hirschhorn: OK. 1593 01:15:10,010 --> 01:15:11,830 Svo í ljósi bæði þessar leiðir - 1594 01:15:11,830 --> 01:15:15,210 það hljómar eins og við að gefa það a pixla, það hefur rautt, blátt og grænt stig. 1595 01:15:15,210 --> 01:15:19,350 Við viljum breyta hlutfallslegt magn rauða og bláa grænn, allt eftir 1596 01:15:19,350 --> 01:15:20,740 á þeim díl. 1597 01:15:20,740 --> 01:15:28,380 Hvar í þessum kóða ættum við að breyta hlutfallslegt rauður, blár og grænn 1598 01:15:28,380 --> 01:15:29,720 stig af tilteknu punkta. 1599 01:15:29,720 --> 01:15:30,600 Eftir að við höfum lesið það - 1600 01:15:30,600 --> 01:15:32,520 áður en við skrifa það? 1601 01:15:32,520 --> 01:15:34,564 Gefa mér línu númer. 1602 01:15:34,564 --> 01:15:35,950 >> Margfeldi NEMENDUR: 83. 1603 01:15:35,950 --> 01:15:37,320 >> JASON Hirschhorn: 83. 1604 01:15:37,320 --> 01:15:38,570 Svo hérna. 1605 01:15:38,570 --> 01:15:40,830 1606 01:15:40,830 --> 01:15:45,710 Fyrir whodunit, kóðinn sem þú þarft að skrifar ættu allir að fara rétt þar. 1607 01:15:45,710 --> 01:15:47,640 Og það er eina númer þú þarft að skrifa. 1608 01:15:47,640 --> 01:15:51,520 Vegna þess, eins og við heyrðum, allt sem þú þarft til að gera er að breyta þessum hlutfallslega blá, 1609 01:15:51,520 --> 01:15:54,420 rauður og grænn stigum frá hverjum pixla. 1610 01:15:54,420 --> 01:15:58,250 >> Þú hefur lesið það í, og nú þú ert að fara að skrifa það út. 1611 01:15:58,250 --> 01:16:03,100 Hvernig fæ ég - ef ég hef þetta í kallast þrefaldur, hérna, og það er 1612 01:16:03,100 --> 01:16:04,570 slá RGBTRIPLE - 1613 01:16:04,570 --> 01:16:08,650 Jæja, ef við skoðuðum í bmp.h, hvað er RGBTRIPLE? 1614 01:16:08,650 --> 01:16:11,450 1615 01:16:11,450 --> 01:16:12,700 >> Námsmaður 77: Það er strúktúr. 1616 01:16:12,700 --> 01:16:17,440 1617 01:16:17,440 --> 01:16:18,900 >> JASON Hirschhorn: RGBTRIPLE er Struct. 1618 01:16:18,900 --> 01:16:22,330 Við sjáum að rétt niður hér. 1619 01:16:22,330 --> 01:16:26,600 Og svo ef ég vildi til að fá aðgang, segjum, rauður láréttur flötur af the strúktúrinn, hvernig ég 1620 01:16:26,600 --> 01:16:30,005 aðgang rauða stigi þessa strúktúr? 1621 01:16:30,005 --> 01:16:37,280 >> [CLASS murmurs] 1622 01:16:37,280 --> 01:16:38,530 >> STUDENT 78: RGBTRIPLE.rgbtred? 1623 01:16:38,530 --> 01:16:47,250 1624 01:16:47,250 --> 01:16:48,856 >> JASON Hirschhorn: Er það rétt? 1625 01:16:48,856 --> 01:16:53,040 >> STUDENT 79: Það ætti að vera þrefaldur punktur, í stað þess að RGBTRIPLE punktur? 1626 01:16:53,040 --> 01:16:54,120 >> JASON Hirschhorn: Triple. 1627 01:16:54,120 --> 01:16:56,700 Triple er staðbundin breytu, svo hér, það er engin ábendingum hér. 1628 01:16:56,700 --> 01:16:58,400 Svo við notum bara punktur sýndur. 1629 01:16:58,400 --> 01:17:00,480 Þetta mun gefa mér hversu rauður. 1630 01:17:00,480 --> 01:17:06,180 Ef ég vil breyta því, ég setti bara það jafn eitthvað annað. 1631 01:17:06,180 --> 01:17:13,190 Svo aftur, þessi lína af kóða aðgangur þessa breytu innan þessa strúktúr, og 1632 01:17:13,190 --> 01:17:15,070 við getum sett það í eitthvað nýtt. 1633 01:17:15,070 --> 01:17:20,040 >> Svo fyrir whodunit, aftur, þetta er, í raun, það sem við þurfum að gera. 1634 01:17:20,040 --> 01:17:21,170 Mjög einfalt. 1635 01:17:21,170 --> 01:17:25,020 Bara breyta sumir ættingja stigum, og þetta er þar sem kóða fer. 1636 01:17:25,020 --> 01:17:27,720 Búa, á hinn bóginn, er svolítið trickier. 1637 01:17:27,720 --> 01:17:30,900 Í raun, búa er líklega erfiðustu hluti af þessu vandamáli sett. 1638 01:17:30,900 --> 01:17:32,720 Við höfum þrjár mínútur til að fara yfir það. 1639 01:17:32,720 --> 01:17:34,910 >> En aftur, við höfum nú þegar skrifað flest af þessu kóða, svo við 1640 01:17:34,910 --> 01:17:36,500 ætti að vera nokkuð kunnuglegt. 1641 01:17:36,500 --> 01:17:40,750 Hvað eru nokkur atriði sem við viljum gera í búa, ef þú hefur lesið yfir 1642 01:17:40,750 --> 01:17:43,470 Heimadæmi? 1643 01:17:43,470 --> 01:17:45,290 Ef þú gefur mér þá, við getur talað um þau. 1644 01:17:45,290 --> 01:17:47,340 Hvað eru nokkur atriði sem við viljum gera? 1645 01:17:47,340 --> 01:17:47,970 >> STUDENT 80: lóðrétt - 1646 01:17:47,970 --> 01:17:52,360 svo þú þarft að lárétt búa það, en lóðrétt búa það eins vel? 1647 01:17:52,360 --> 01:17:58,475 >> JASON Hirschhorn: Svo ef við erum gefið pixla, og við viljum búa það með 1648 01:17:58,475 --> 01:18:03,460 þáttur af tveimur, það þarf nú að vera búa lárétt og búa 1649 01:18:03,460 --> 01:18:05,220 lóðrétt. 1650 01:18:05,220 --> 01:18:06,640 Er að skynsamleg? 1651 01:18:06,640 --> 01:18:07,060 Já. 1652 01:18:07,060 --> 01:18:09,300 Svo er það líklega Stærsta áskorunin. 1653 01:18:09,300 --> 01:18:10,430 Og við munum tala um það í eina sek. 1654 01:18:10,430 --> 01:18:11,065 Já. 1655 01:18:11,065 --> 01:18:15,270 >> STUDENT 81: Eins og ég hugsaði um það var að þú þurftir að prenta það út - 1656 01:18:15,270 --> 01:18:15,490 >> JASON Hirschhorn: Bíddu. 1657 01:18:15,490 --> 01:18:17,580 Ekki segja okkur hvað þú gerðir. 1658 01:18:17,580 --> 01:18:20,620 Við erum að fara að tala í rökfræði. 1659 01:18:20,620 --> 01:18:21,870 >> STUDENT 81: OK. 1660 01:18:21,870 --> 01:18:25,090 1661 01:18:25,090 --> 01:18:27,410 Hver var spurningin? 1662 01:18:27,410 --> 01:18:28,892 >> JASON Hirschhorn: Þú bara rétti upp hönd þína. 1663 01:18:28,892 --> 01:18:31,600 Það var engin spurning. 1664 01:18:31,600 --> 01:18:32,520 Leyfðu mér að kynna hana. 1665 01:18:32,520 --> 01:18:34,560 Leyfðu mér að ræða bara þetta stuttlega. 1666 01:18:34,560 --> 01:18:38,400 Þannig að við höfum einn pixla, við viljum endurtaka það, bæði lárétt og 1667 01:18:38,400 --> 01:18:39,360 lóðrétt. 1668 01:18:39,360 --> 01:18:48,920 Svo fullkomlega það sem við gerum hér er, við lesa í pixla okkar, skrifa við það 1669 01:18:48,920 --> 01:18:51,690 Þó margir af sinnum. 1670 01:18:51,690 --> 01:18:54,720 >> En þá höfum við bragð okkar hér, því þá viljum við sleppa við 1671 01:18:54,720 --> 01:18:57,660 næsta lína og skrifa það á upphaf næstu línu. 1672 01:18:57,660 --> 01:19:02,960 Þannig að ef við viljum að endurtaka bæði lárétt og lóðrétt, hvað er 1673 01:19:02,960 --> 01:19:05,050 Ein góð leið til að gera það - 1674 01:19:05,050 --> 01:19:06,780 einn góður þó að gera það? 1675 01:19:06,780 --> 01:19:11,950 Þannig að við þurfum ekki stöðugt að leita um skrá okkar til að setja hlutina. 1676 01:19:11,950 --> 01:19:14,360 >> Þessi spurning gæti ekki hafa vit, en ég held að 1677 01:19:14,360 --> 01:19:15,800 svar við því mun hjálpa. 1678 01:19:15,800 --> 01:19:17,210 >> STUDENT 82: búa til array? 1679 01:19:17,210 --> 01:19:20,090 >> JASON Hirschhorn: Svo skulum hugsa af hverri skrá sem röð. 1680 01:19:20,090 --> 01:19:22,550 Við skulum hugsa í skilmálar af línum. 1681 01:19:22,550 --> 01:19:26,670 Ef við höfum fyrstu röðinni okkar frá litlum okkar mynd, getum við gert í röðinni 1682 01:19:26,670 --> 01:19:30,640 í stóra röð af stóru myndinni, og þá endurtaka röðinni þó 1683 01:19:30,640 --> 01:19:34,250 oft það þarf að endurtaka, frekar en að fara pixla með pixla, 1684 01:19:34,250 --> 01:19:37,260 sem fær ruglingslegt þegar takast á við skrám. 1685 01:19:37,260 --> 01:19:38,730 >> Vegna þess að ef við hefðum - 1686 01:19:38,730 --> 01:19:41,260 Ég er að keyra út af plássi. 1687 01:19:41,260 --> 01:19:46,490 Ef þetta er skrá okkar, og við höfum að einn pixla þar, og við viljum að setja það 1688 01:19:46,490 --> 01:19:49,840 rétt þar, við höfum enn nokkur atriði sem þarf að fara yfir það þegar við erum 1689 01:19:49,840 --> 01:19:51,450 skrifa og skapa nýja skrá okkar - 1690 01:19:51,450 --> 01:19:53,250 skrá okkar sem er tvisvar sinnum eins og stór. 1691 01:19:53,250 --> 01:19:56,820 >> En það er mjög erfitt með skrá virka að sleppa um að nýjum línum 1692 01:19:56,820 --> 01:20:00,260 svona, og þá fara aftur hingað og setja hlutina í það. 1693 01:20:00,260 --> 01:20:04,500 Það er nánast ómögulegt að gera eitthvað svona, ef það er vit í. 1694 01:20:04,500 --> 01:20:10,180 Þannig að ef við hugsa í skilmálar af línum, getum við taka röð okkar, og þá setja það - 1695 01:20:10,180 --> 01:20:11,720 endurtaka raðir lóðrétt. 1696 01:20:11,720 --> 01:20:15,860 >> Og það er hvernig við takast á við að breyta stærð lóðrétt frekar en lárétt. 1697 01:20:15,860 --> 01:20:18,810 Það var eins konar fljótur, og smá ruglingslegt. 1698 01:20:18,810 --> 01:20:22,375 Því miður er tíminn er upp. 1699 01:20:22,375 --> 01:20:27,340 Ég mun standa fyrir utan fyrir þá hér sem hafa spurningar um 1700 01:20:27,340 --> 01:20:30,500 Heimadæmi, þ.mt batna. 1701 01:20:30,500 --> 01:20:32,320 >> Svo skulum fresta í bili. 1702 01:20:32,320 --> 01:20:34,480 Og aftur, ef þú hefur einhverjar spurningar, við getum spjallað úti. 1703 01:20:34,480 --> 01:20:38,294