1 00:00:00,000 --> 00:00:07,810 2 00:00:07,810 --> 00:00:09,840 >> JASON Hirschhorn: Tere, igaüks, et 6. nädal. 3 00:00:09,840 --> 00:00:14,790 Mul on hea meel teid kõiki näha elus ja terve pärast Quiz 0, sest ma tean, et 4 00:00:14,790 --> 00:00:15,810 oli natuke karm. 5 00:00:15,810 --> 00:00:18,370 Aga õnneks, siis kõik tegid uskumatult hästi. 6 00:00:18,370 --> 00:00:21,680 Ja nii see on imeline. 7 00:00:21,680 --> 00:00:25,840 Kui sa oled minu jagu, olen andnud kõige te tagasi oma viktoriinid juba. 8 00:00:25,840 --> 00:00:28,050 >> Paar teist, Ma kohtun peale tunde. 9 00:00:28,050 --> 00:00:32,360 Ja kui sa oled pikendamine õpilane ja te ei ole saanud oma viktoriin tagasi 10 00:00:32,360 --> 00:00:35,490 veel, oma TF ilmselt kallal ja liigitamiseks, ja saad selle tagasi 11 00:00:35,490 --> 00:00:36,490 Teile peatselt. 12 00:00:36,490 --> 00:00:39,650 Nii et minu laiendamine õpilastele, kes on vaadates kohe - loodetavasti elada - 13 00:00:39,650 --> 00:00:42,880 Ma saan oma viktoriinid varsti samuti. 14 00:00:42,880 --> 00:00:45,670 >> Meie tänase päevakorra on järgmine. 15 00:00:45,670 --> 00:00:50,170 Esiteks, me läheme üle mõned ressursse, et CS50 annab sulle. 16 00:00:50,170 --> 00:00:54,590 Me läheme üle Quiz 0 järgmine, ja Ma vastan kõikidele küsimustele keegi 17 00:00:54,590 --> 00:00:57,360 on umbes erilisi probleeme. 18 00:00:57,360 --> 00:01:02,050 Ja siis me läheb üle Faili I / O ja lahendamist 5. 19 00:01:02,050 --> 00:01:07,360 Need kaks viimast teemat võtab moodustavad suurema jao täna. 20 00:01:07,360 --> 00:01:11,680 >> Panin selle nimekirja iga nädal nagu meeldetuletus teile kõigile, kuid põhiliste 21 00:01:11,680 --> 00:01:14,650 jagu, meil on ainult 90 minutit - me ei suuda katta kõike, mida ma 22 00:01:14,650 --> 00:01:16,280 Oleks tore, et katta kutid. 23 00:01:16,280 --> 00:01:21,170 Aga meil on ton ressursside sa lähtuda, kui sa saad teada, 24 00:01:21,170 --> 00:01:24,000 materjali ja töö kaudu Teie probleem seab. 25 00:01:24,000 --> 00:01:30,810 >> Meeldetuletus, et mul on-line tekst kast, mis on loodud teie jaoks täita, kui te 26 00:01:30,810 --> 00:01:33,250 mingit tagasisidet minu jaoks, nii positiivseid kui ka 27 00:01:33,250 --> 00:01:35,180 konstruktiivne, umbes osa. 28 00:01:35,180 --> 00:01:38,600 See link asub siinsamas. 29 00:01:38,600 --> 00:01:43,250 Nii et palun, võta hetk, kui teil on tagasisidet, kas ajal lõik, 30 00:01:43,250 --> 00:01:48,030 või pärast, või pärast seda, kui video online, et anna mulle oma tagasiside. 31 00:01:48,030 --> 00:01:52,100 Ma tõesti hindan kõik ja kõik see. 32 00:01:52,100 --> 00:01:55,730 >> Nii et ma olen olnud võttes väikesed vestlused palju mu 33 00:01:55,730 --> 00:01:59,350 üliõpilaste kogu nädala - kui ma käsi tagasi viktoriinid, räägime 34 00:01:59,350 --> 00:02:01,480 muidugi näha, kuidas sa teed. 35 00:02:01,480 --> 00:02:05,120 Ja üks teema on tulnud üle ja üle rääkides - in 36 00:02:05,120 --> 00:02:05,660 eriti - 37 00:02:05,660 --> 00:02:07,710 probleem seab. 38 00:02:07,710 --> 00:02:13,090 Ja ma olen kapseldatud, et teema laual praegu. 39 00:02:13,090 --> 00:02:16,630 >> Sisuliselt pole vahet vahel keerates midagi, mis on 40 00:02:16,630 --> 00:02:19,590 teha õigesti ja midagi see on tehtud hästi. 41 00:02:19,590 --> 00:02:22,920 Enamik inimesi on teinud fantastilise poolest õigsust - 42 00:02:22,920 --> 00:02:25,460 5-või 4 on kõik psets. 43 00:02:25,460 --> 00:02:27,930 Enamik inimesi ei saada need kõik aega. 44 00:02:27,930 --> 00:02:31,150 >> Kuid lihtsalt sellepärast, olete teinud midagi õigesti ei tähenda, et sa oled 45 00:02:31,150 --> 00:02:34,450 teha midagi nii elegantselt või tõhusalt, või kui puhtalt kui 46 00:02:34,450 --> 00:02:35,270 võis seda teha. 47 00:02:35,270 --> 00:02:36,790 Ja see, mida disain - 48 00:02:36,790 --> 00:02:39,230 ja vähemal määral stiil - 49 00:02:39,230 --> 00:02:40,450 telgedel eest. 50 00:02:40,450 --> 00:02:45,130 Nii et ma olen surudes teile kõigile ja teiste TF ajavad teid, mitte ainult kord 51 00:02:45,130 --> 00:02:48,320 asju, mis on õiged, kuid keera in asjad, mis on kodeeritud hästi. 52 00:02:48,320 --> 00:02:53,060 >> Ei tee mittevajaliku silmad, ei arvuta muutujad kui 53 00:02:53,060 --> 00:02:53,800 sa ei pea. 54 00:02:53,800 --> 00:02:58,520 Näiteks vaadates tagasi lahendamist 4, kui paigutamise tellised 55 00:02:58,520 --> 00:03:03,070 ekraan, igal real - iga tellis antud rida on sama y-koordinaat - 56 00:03:03,070 --> 00:03:04,390 samal kõrgusel kooskõlastama. 57 00:03:04,390 --> 00:03:07,930 >> Nii et y-koordinaat ei pea arvutatakse sees sisustus 58 00:03:07,930 --> 00:03:11,070 nested loop, et te tõenäoliselt kasutada panna need tellised ekraanil. 59 00:03:11,070 --> 00:03:14,030 See vaid tuleb arvutada iga kord, kui sisse rea või 60 00:03:14,030 --> 00:03:15,200 kolis maha järjest. 61 00:03:15,200 --> 00:03:19,760 Nii öelda, kas seal on 10 telliseid rida iga telliskivi võib olla sama 62 00:03:19,760 --> 00:03:22,260 y-koordinaat, ja et y-koordinaat saab lihtsalt arvutada 63 00:03:22,260 --> 00:03:23,550 korraga neist. 64 00:03:23,550 --> 00:03:27,810 >> See ei pea olema arvutatud 10 korda ega selle arvutamise vajadus 65 00:03:27,810 --> 00:03:30,220 juhtuda tegelik funktsioon kõne - 66 00:03:30,220 --> 00:03:33,020 uus gracked funktsioon kõne. 67 00:03:33,020 --> 00:03:37,820 Nii et kui see oli natuke segane sa rohkem üldmõistena, asju, mis 68 00:03:37,820 --> 00:03:40,730 ei pea juhtuma iga kord sa lähed läbi loop ei tohiks olla 69 00:03:40,730 --> 00:03:42,900 asetada silmus, ja ei tohiks juhtub iga kord, kui minna 70 00:03:42,900 --> 00:03:44,080 läbi silmus. 71 00:03:44,080 --> 00:03:49,270 >> Teine hea disaini näiteks nägime 3. nädalal 15, siis võiks hoida 72 00:03:49,270 --> 00:03:50,500 jälgida null. 73 00:03:50,500 --> 00:03:53,600 Nii et kui te initsialiseerida pardal, siis säästa - in globaalne muutuja, ehk - 74 00:03:53,600 --> 00:03:56,140 x ja y-koordinaadi null. 75 00:03:56,140 --> 00:03:57,520 Ja siis, kui sa - 76 00:03:57,520 --> 00:04:00,310 Sinu käik funktsioon, kui te teete edukas liikuda, siis uuendada 77 00:04:00,310 --> 00:04:02,040 asukohast null. 78 00:04:02,040 --> 00:04:06,240 >> See säästab omamast teha Pesastatud FOR silmuseid läbi vaatama 79 00:04:06,240 --> 00:04:10,700 pardale iga kord oma käigu funktsioon ja leida null, või leida kivi, 80 00:04:10,700 --> 00:04:12,460 ja seejärel kontrollida, mis on selle kõrval. 81 00:04:12,460 --> 00:04:16,329 Selle asemel pead asukohast null, saate otsida all, peal, 82 00:04:16,329 --> 00:04:21,160 ja vasakul ja paremal see, et leida plaat, mida otsisite. 83 00:04:21,160 --> 00:04:24,970 >> Nii nii programmide oleme kirjalikult, et nad ei ole kunagi piisavalt suur 84 00:04:24,970 --> 00:04:28,580 et mõned neist disaini otsuseid on tõesti kahjustada teie 85 00:04:28,580 --> 00:04:31,670 programmi või teha see kestab rohkem aeglaselt, või ehk isegi otsa mälu. 86 00:04:31,670 --> 00:04:35,030 Aga me ikka surudes kutid kirjutada elegantne ja 87 00:04:35,030 --> 00:04:36,450 tõhus kood kui võimalik. 88 00:04:36,450 --> 00:04:39,910 >> Nii et kui sa lõpuks kirjalikult asjad mis on oluliselt suurem 89 00:04:39,910 --> 00:04:44,660 ulatust, siis tuleb kirjutada hea kujundada lisaks on kehtiv. 90 00:04:44,660 --> 00:04:46,300 Nii mitu pead tõi selle välja. 91 00:04:46,300 --> 00:04:48,560 See on midagi, mida me otsime - midagi, mida me ei kavatse jätkata 92 00:04:48,560 --> 00:04:49,840 push te edasi. 93 00:04:49,840 --> 00:04:52,460 >> Kui teil on kunagi olnud mingeid küsimusi disaini oma programmi, võite 94 00:04:52,460 --> 00:04:56,870 jõuda mind, ja ma olen õnnelik, kõndida läbi oma programmi koos sinuga, 95 00:04:56,870 --> 00:05:01,320 ja meelde mõned disaini otsuseid, mida on tehtud, ja annab sulle mõned 96 00:05:01,320 --> 00:05:06,240 ettepanekuid selle kohta, kuidas teha isegi parem disaini otsuseid. 97 00:05:06,240 --> 00:05:08,870 >> Nii me edasi liikuda räägime Quiz 0. 98 00:05:08,870 --> 00:05:11,300 Enne kui me seda teeme, kas keegi on küsimusi, mida 99 00:05:11,300 --> 00:05:14,252 Olen kaetud nii kaugele? 100 00:05:14,252 --> 00:05:21,500 >> [Metsakohinat NOISE] 101 00:05:21,500 --> 00:05:22,750 >> JASON Hirschhorn: Seitse sekundit. 102 00:05:22,750 --> 00:05:23,250 OK. 103 00:05:23,250 --> 00:05:24,970 Räägime Quiz 0 natuke. 104 00:05:24,970 --> 00:05:26,700 Enamik teist on oma Quiz 0 selja. 105 00:05:26,700 --> 00:05:29,820 Kui te seda ei tee, loodetavasti sa mäletad seda natuke. 106 00:05:29,820 --> 00:05:34,770 Aga kui sa oled võtnud Quiz 0, siis juurdepääs ka PDF internetis 107 00:05:34,770 --> 00:05:35,890 proovi lahendusi. 108 00:05:35,890 --> 00:05:39,480 >> Kas kellelgi on mingeid küsimusi enne me hüpata nädala materjale 109 00:05:39,480 --> 00:05:41,520 erilisi probleeme Quiz 0 - 110 00:05:41,520 --> 00:05:44,630 miks vastus on, mis see on? 111 00:05:44,630 --> 00:05:47,255 Kas keegi on segaduses midagi? 112 00:05:47,255 --> 00:05:50,230 Isegi kui sul on probleem küll, aga lihtsalt tahaks mulle seletada natuke 113 00:05:50,230 --> 00:05:52,640 rohkem, ma olen õnnelik, et seda teha nüüd. 114 00:05:52,640 --> 00:05:57,800 >> Nii olen palunud kutid tulevad valmis mõned 115 00:05:57,800 --> 00:05:59,440 mõtteid Quiz 0. 116 00:05:59,440 --> 00:06:02,660 Seega, kes soovib saada meile Alustasime küsimus või 117 00:06:02,660 --> 00:06:04,655 kommenteerida Quiz 0? 118 00:06:04,655 --> 00:06:07,435 119 00:06:07,435 --> 00:06:10,410 >> [PAPER metsakohinat] 120 00:06:10,410 --> 00:06:11,470 >> JASON Hirschhorn: Mitte igaüks tegin täiesti. 121 00:06:11,470 --> 00:06:12,720 Nii et ma tean [naerab] 122 00:06:12,720 --> 00:06:15,950 seal on mõned küsimused umbes 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 Jah. 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 Kumb oli number 10? 130 00:06:35,400 --> 00:06:35,840 >> OMPICA: - 131 00:06:35,840 --> 00:06:36,420 >> JASON Hirschhorn: I haven't - 132 00:06:36,420 --> 00:06:37,670 >> OMPICA: hulka - 133 00:06:37,670 --> 00:06:40,060 134 00:06:40,060 --> 00:06:42,180 >> JASON Hirschhorn: Number 10 oli kaheksa I - kirjalikult kaheksa-i? 135 00:06:42,180 --> 00:06:42,980 >> OMPICA: Jah. 136 00:06:42,980 --> 00:06:43,630 >> JASON Hirschhorn: OK. 137 00:06:43,630 --> 00:06:47,390 Seega veel üks küsimus, mida võiks olla küsis oli ma ettenägelikud? 138 00:06:47,390 --> 00:06:48,630 Vastus on jah. 139 00:06:48,630 --> 00:06:52,060 Punktis enne viktoriin, palusin kutid koodi nii Sterling ja 140 00:06:52,060 --> 00:06:52,980 kaheksalt i. 141 00:06:52,980 --> 00:06:54,770 Mõlemad juhtus ilmuvad viktoriini. 142 00:06:54,770 --> 00:06:57,510 Loodetavasti, sa maksta tähelepanu sellele. 143 00:06:57,510 --> 00:07:02,520 >> Ja kui sul oleks, siis oleks ilmselt hästi neile kahele. 144 00:07:02,520 --> 00:07:06,030 Aga kaheksa-i, me tegelikult ei koodi seda klassi, aga see oli jällegi 145 00:07:06,030 --> 00:07:07,500 küsis kohta viktoriini. 146 00:07:07,500 --> 00:07:13,270 Nii paar asja võtta Märkus kodeerimine kaheksalt i. 147 00:07:13,270 --> 00:07:17,320 Esimene asi, ühe küsimuse, oli et teil on vaja kontrollida, kas string 148 00:07:17,320 --> 00:07:20,300 oli võrdne null. 149 00:07:20,300 --> 00:07:28,060 >> Paar inimest üritas vaadata hiljem programmis kui s sulg olin - 150 00:07:28,060 --> 00:07:30,940 nii konkreetne märk, et string - oli võrdne null. 151 00:07:30,940 --> 00:07:35,600 Kuid pidage meeles, et null on sisuliselt - see on hea mõelda 152 00:07:35,600 --> 00:07:39,100 null kui null pointer - osuti nulli - 153 00:07:39,100 --> 00:07:40,920 kuskil mälus kus sa ei saa kunagi pääseda. 154 00:07:40,920 --> 00:07:44,730 >> Nii et kui midagi on võrdne null, siis tean, et see ei ole lähtestatud, 155 00:07:44,730 --> 00:07:46,430 või seal pole midagi. 156 00:07:46,430 --> 00:07:50,950 Seega on s char star, S sulg i on char. 157 00:07:50,950 --> 00:07:57,410 Seega on mõistlik võrrelda s tühjaks, kuid ei s sulg i tühjaks. 158 00:07:57,410 --> 00:07:59,390 Aga jälle - nii et see oli esimene asi, et sa pidid tegema - 159 00:07:59,390 --> 00:08:03,510 veenduge, et te tegelikult sain päris string. 160 00:08:03,510 --> 00:08:08,020 >> Järgmine, sa tahtsid minna läbi iga märk string. 161 00:08:08,020 --> 00:08:12,500 Ja nii, et oleks nagu s sulg Mina, näiteks, kui ma su iteraatoris. 162 00:08:12,500 --> 00:08:17,250 Ja võta see märk ja saada selle tegelikku väärtust. 163 00:08:17,250 --> 00:08:21,800 Sul on see salvestatud char, aga ASCII väärtusega null - 164 00:08:21,800 --> 00:08:23,010 nulli iseloomu - 165 00:08:23,010 --> 00:08:25,450 Tegelikult ei ole täisarv null. 166 00:08:25,450 --> 00:08:28,700 See on mingi muu number, mida saate vaata üles ASCII tabelis. 167 00:08:28,700 --> 00:08:30,790 >> Nii et üks viis õige, et - Tõenäoliselt parim viis korrigeerimiseks 168 00:08:30,790 --> 00:08:33,760 et - on lahutada see iseloomu väärtus - 169 00:08:33,760 --> 00:08:35,140 nulli iseloomu. 170 00:08:35,140 --> 00:08:38,490 Seega miinus ülakoma, null, veel ühe hinnapakkumise. 171 00:08:38,490 --> 00:08:44,620 See võtab ükskõik mis numbri sa pead nagu char, ja saada see võrdub 172 00:08:44,620 --> 00:08:46,720 number kui tegelik täisarv. 173 00:08:46,720 --> 00:08:50,300 >> Ja mis on väga sarnane lähenemine palju inimesi võttis 174 00:08:50,300 --> 00:08:52,800 probleem komplekt 2, Caesar ja Viginere - 175 00:08:52,800 --> 00:08:55,160 need ciphers, kui te pööritati neid. 176 00:08:55,160 --> 00:08:59,210 Nii et kui olete seda numbrit null kuni üheksa, siis - sõltuvalt 177 00:08:59,210 --> 00:09:02,750 kus läheb see ülim number - sa pead korrutada see 178 00:09:02,750 --> 00:09:04,120 by võimsus 10. 179 00:09:04,120 --> 00:09:07,340 >> Mõned inimesed liikunud tagasi ees, ja korrutatakse individuaalse 180 00:09:07,340 --> 00:09:08,940 number võimsus 10. 181 00:09:08,940 --> 00:09:11,160 Mõned inimesed liikunud taha - 182 00:09:11,160 --> 00:09:14,430 ja nii võttis kõrgeim järjekorranumbreid esimene - 183 00:09:14,430 --> 00:09:18,190 ja hoiaks need ülemaailmse terrorismivastase muutuja. 184 00:09:18,190 --> 00:09:20,880 Ja siis iga kord läbi FOR loop, korrutada see hiiglane ülemaailmne 185 00:09:20,880 --> 00:09:25,640 võidelda muutuja 10, teha ruumi järgmisele char. 186 00:09:25,640 --> 00:09:28,750 >> Nii et oli natuke segane ilma mulle kirjalikult see lauale. 187 00:09:28,750 --> 00:09:31,550 Aga proovi lahuse on teile kättesaadavaks. 188 00:09:31,550 --> 00:09:32,870 Aga need olid suured asjad otsisime. 189 00:09:32,870 --> 00:09:36,400 Samuti veenduge, et iga eripärasuse oli tõepoolest 190 00:09:36,400 --> 00:09:39,780 iseloomu nulli ja üheksa, ja mitte mõne teise märgi, nagu, 191 00:09:39,780 --> 00:09:41,160 näiteks. 192 00:09:41,160 --> 00:09:43,150 >> Need olid asjad, mida me otsisime kõnealuses küsimuses. 193 00:09:43,150 --> 00:09:46,510 194 00:09:46,510 --> 00:09:47,980 Kas see vastab su küsimusele? 195 00:09:47,980 --> 00:09:49,320 >> OMPICA: Jah. 196 00:09:49,320 --> 00:09:50,240 >> JASON Hirschhorn: OK. 197 00:09:50,240 --> 00:09:53,940 Kas on muid küsimusi umbes Quiz 0? 198 00:09:53,940 --> 00:09:55,440 Aga koostamisel? 199 00:09:55,440 --> 00:09:56,740 Igaüks koostamise õigus? 200 00:09:56,740 --> 00:09:58,370 Ei. 201 00:09:58,370 --> 00:09:58,840 Oli - 202 00:09:58,840 --> 00:10:01,010 [Naerab] 203 00:10:01,010 --> 00:10:03,265 Kõik küsimused koostamise protsessi? 204 00:10:03,265 --> 00:10:06,050 205 00:10:06,050 --> 00:10:06,966 Wow. 206 00:10:06,966 --> 00:10:11,090 >> [PAPER metsakohinat] 207 00:10:11,090 --> 00:10:11,520 >> JASON Hirschhorn: Jah. 208 00:10:11,520 --> 00:10:11,700 Michael. 209 00:10:11,700 --> 00:10:14,140 >> MICHAEL: Kas number 7 - juhuslik? 210 00:10:14,140 --> 00:10:16,500 >> JASON Hirschhorn arv 7. 211 00:10:16,500 --> 00:10:20,670 Number 7 oli saada juhuslik täisarv. 212 00:10:20,670 --> 00:10:21,110 Suurepärane. 213 00:10:21,110 --> 00:10:25,630 Nii, et sa antud täisarv ja täisarv b, ja sa tahad juhuslikult 214 00:10:25,630 --> 00:10:28,710 täisarv ja b. 215 00:10:28,710 --> 00:10:31,740 Tegelikult saame see on pardal, sest see 216 00:10:31,740 --> 00:10:33,320 oli üks rida koodi - 217 00:10:33,320 --> 00:10:34,390 üks viis seda teha. 218 00:10:34,390 --> 00:10:37,810 >> Nii et me antud drand kui funktsioon me võiks kasutada. 219 00:10:37,810 --> 00:10:38,820 Ja mida see drand - 220 00:10:38,820 --> 00:10:40,290 Oletades, et see on külvatud - 221 00:10:40,290 --> 00:10:42,316 mida see drand tagasi? 222 00:10:42,316 --> 00:10:44,840 >> MICHAEL: float vahel 0,0 ja 1,0. 223 00:10:44,840 --> 00:10:45,530 >> JASON Hirschhorn: number - jah. 224 00:10:45,530 --> 00:10:47,910 Arvu 0 ja 1 vahel. 225 00:10:47,910 --> 00:10:51,760 Ja nii me on b ja a. 226 00:10:51,760 --> 00:10:55,480 Ja siis on meil juhuslik number 0 ja 1 vahel, mille andis meile drand. 227 00:10:55,480 --> 00:11:01,480 228 00:11:01,480 --> 00:11:06,630 Mõned inimesed üritasid panna b või b miinus või midagi sees need 229 00:11:06,630 --> 00:11:07,960 sulgudes. 230 00:11:07,960 --> 00:11:11,210 See tähendaks, et nad on argumente selle funktsiooni. 231 00:11:11,210 --> 00:11:13,450 >> drand ei võta mingeid argumente - nagu getString ei 232 00:11:13,450 --> 00:11:14,330 ei võta mingeid argumente. 233 00:11:14,330 --> 00:11:16,600 Nii et see on lihtsalt avatud paren lähedal paren - ja et iseenesest on 234 00:11:16,600 --> 00:11:17,330 funktsioon kõne. 235 00:11:17,330 --> 00:11:19,770 Ja see annab sulle mitmeid 0 ja 1 vahel. 236 00:11:19,770 --> 00:11:22,820 Muidugi, meil on terve hulk et numbrid võivad olla sisse 237 00:11:22,820 --> 00:11:28,470 >> Ütle, kui b on 10 ja on 5, me tõesti tahad numbrit vahemikus 5. 238 00:11:28,470 --> 00:11:36,940 Nii et järgmine asi, mida me peame tegema, on korrutada seda valikut b miinus a. 239 00:11:36,940 --> 00:11:40,380 Seega eeldades, et on mitmekordistunud. 240 00:11:40,380 --> 00:11:42,590 Ja see annab meile number teatavas vahemikus. 241 00:11:42,590 --> 00:11:46,610 Ja see konkreetne valik on vahe b miinus a. 242 00:11:46,610 --> 00:11:50,030 >> Ja lõpuks, et ma ainult ei anna see - öelda vahemikus b miinus 243 00:11:50,030 --> 00:11:52,520 on 5, mis annan meile nr 0-5. 244 00:11:52,520 --> 00:11:56,000 Aga kui on tegelikult 5, peame suurendama Selles vahemikus kuni kus see on 245 00:11:56,000 --> 00:12:01,380 tegelikult peaks olema, lisades. 246 00:12:01,380 --> 00:12:02,580 Nii et saab loogika õige. 247 00:12:02,580 --> 00:12:03,745 Ja siis sa pead teine ​​küsimus? 248 00:12:03,745 --> 00:12:04,547 >> MICHAEL: Ei 249 00:12:04,547 --> 00:12:06,010 Ma tunnen tõesti loll kohe. 250 00:12:06,010 --> 00:12:06,405 [Naerab] 251 00:12:06,405 --> 00:12:06,730 >> JASON Hirschhorn: Ei 252 00:12:06,730 --> 00:12:08,640 Ei tunne tõesti loll. 253 00:12:08,640 --> 00:12:10,560 Mitmed inimesed võitlesid seda küsimust. 254 00:12:10,560 --> 00:12:13,920 Ja siis teine ​​küsimus on, drand, sa ütlesid, annab teile float - 255 00:12:13,920 --> 00:12:14,940 tagasi sularahaga. 256 00:12:14,940 --> 00:12:18,020 Kuid see funktsioon tegelikult küsitakse jaoks täisarv tuleb tagastada. 257 00:12:18,020 --> 00:12:23,700 >> Sul ei ole vaja heita seda selgesõnaliselt täisarv, sest need 258 00:12:23,700 --> 00:12:29,090 operatsioonid seda ravida kõik float - nagu ujukomaarvuna. 259 00:12:29,090 --> 00:12:31,570 Meeldib see - isegi kui see on täisarv, siis see 260 00:12:31,570 --> 00:12:32,890 korrutatakse õigesti. 261 00:12:32,890 --> 00:12:34,000 Kõik korrutamine töötab. 262 00:12:34,000 --> 00:12:35,060 Sa ei pea enamus siin. 263 00:12:35,060 --> 00:12:36,480 Tegelikult, sa ei heida enesest. 264 00:12:36,480 --> 00:12:37,310 >> See oleks - 265 00:12:37,310 --> 00:12:40,750 Kui te heidaks number see on 0 ja 1 vahel - 266 00:12:40,750 --> 00:12:42,680 juhuslik number, ujukoma - 267 00:12:42,680 --> 00:12:47,850 siis kas ainult 0 või 1, nii sa kaotad kõik, mis täpselt. 268 00:12:47,850 --> 00:12:50,120 Aga lõpus, kui pöördute tagasi, see automaatselt saab 269 00:12:50,120 --> 00:12:51,620 saadetakse tagasi täisarv. 270 00:12:51,620 --> 00:12:56,870 Nii et sa ei pea tegema et valu ise. 271 00:12:56,870 --> 00:13:00,810 >> Nii et see oli vastus Sellele küsimusele number 7. 272 00:13:00,810 --> 00:13:02,190 Muid küsimusi viktoriin 0? 273 00:13:02,190 --> 00:13:03,300 Jah, Annie. 274 00:13:03,300 --> 00:13:05,050 >> Annie: Kui me kasutame rekursiivne - 275 00:13:05,050 --> 00:13:07,850 kui me kasutame iteratiivne silmad? 276 00:13:07,850 --> 00:13:10,210 >> JASON Hirschhorn: Kui te kasutate rekursiivne - nii üldisemalt 277 00:13:10,210 --> 00:13:14,110 plusse ja miinuseid rekursioon versus iteratiivne lähenemine. 278 00:13:14,110 --> 00:13:17,110 Kas keegi oskab pakkuda pro või con? 279 00:13:17,110 --> 00:13:19,460 Palun? 280 00:13:19,460 --> 00:13:20,140 Ei saa keegi. 281 00:13:20,140 --> 00:13:22,526 Kes saab pakkuda pro või con? 282 00:13:22,526 --> 00:13:26,963 >> [PAPER metsakohinat] 283 00:13:26,963 --> 00:13:29,730 >> Õpilane 1: Rekursiivis on vähem kodeerimine - vähem kirjutama? 284 00:13:29,730 --> 00:13:33,170 >> JASON Hirschhorn: Nii üldiselt, rekursioon eriti funktsioon - 285 00:13:33,170 --> 00:13:35,750 või algoritm nagu ühendamist sort - mis on sobiv 286 00:13:35,750 --> 00:13:37,300 et rekursiivne lähenemine - 287 00:13:37,300 --> 00:13:40,710 võib olla lihtne koodi rekursiivselt. 288 00:13:40,710 --> 00:13:43,940 Ja lihtsalt mõttekam seda teha rekursiivselt. 289 00:13:43,940 --> 00:13:46,230 Nii et oleks pro et rekursioon. 290 00:13:46,230 --> 00:13:46,610 Teised? 291 00:13:46,610 --> 00:13:47,467 Jah? 292 00:13:47,467 --> 00:13:49,240 >> Õpilane 2: Con et rekursioon - 293 00:13:49,240 --> 00:13:50,940 Ta kasutab rohkem mälu. 294 00:13:50,940 --> 00:13:52,200 >> JASON Hirschhorn: Nii täpselt õige. 295 00:13:52,200 --> 00:13:55,720 Rekursiivne funktsioon hoiab lisades stack raamid korstnat. 296 00:13:55,720 --> 00:13:59,690 Nii et kui sa oled tegutsevad palju numbrid ja kutsuma selle 297 00:13:59,690 --> 00:14:02,560 toimida palju, siis kindlasti võtavad rohkem mälu, kui 298 00:14:02,560 --> 00:14:05,810 kordusmeetod panna ainult üks Kestab raami pinu sest 299 00:14:05,810 --> 00:14:08,420 see kõik juhtub ühe funktsiooni. 300 00:14:08,420 --> 00:14:11,010 >> Muid plusse ja miinuseid? 301 00:14:11,010 --> 00:14:11,500 Jah. 302 00:14:11,500 --> 00:14:12,550 >> Õpilane 3: plussid rekursioon. 303 00:14:12,550 --> 00:14:15,950 Sa ei pea kindlaks määrama eelnevalt mitu korda 304 00:14:15,950 --> 00:14:17,660 kood tuli korrata. 305 00:14:17,660 --> 00:14:22,810 Sul võib olla eelnevalt kindlaks määratud arv korda, et teil on kinnitada, siis 306 00:14:22,810 --> 00:14:26,420 rekursioon on parem, sest ta võtab, et tulemus. 307 00:14:26,420 --> 00:14:27,780 >> JASON Hirschhorn: Ma arvan, et see on tõsi. 308 00:14:27,780 --> 00:14:30,770 Aga ma arvan, et mõlemal juhul Te ei oleks kunagi - 309 00:14:30,770 --> 00:14:33,290 siis oleks ilmselt saaksin panus kasutaja. 310 00:14:33,290 --> 00:14:35,990 Või see funktsioon oleks mõned sisend mis määrab, mitu korda see 311 00:14:35,990 --> 00:14:36,730 peaks kulgema. 312 00:14:36,730 --> 00:14:39,520 Nii üldiselt, sa ei raske kood - isegi iteratiivne lähenemine - kuidas 313 00:14:39,520 --> 00:14:40,940 mitu korda, et loop tuleks käivitada. 314 00:14:40,940 --> 00:14:46,100 315 00:14:46,100 --> 00:14:48,670 >> Kas teil on veel, et sa oled mõelda, Annie? 316 00:14:48,670 --> 00:14:49,330 OK. 317 00:14:49,330 --> 00:14:51,650 Nii et need on ilmselt kaks - 318 00:14:51,650 --> 00:14:54,370 Suurim pro ja suurim con rekursiivne versus 319 00:14:54,370 --> 00:14:57,080 iteratiivne lähenemine. 320 00:14:57,080 --> 00:14:57,690 OK. 321 00:14:57,690 --> 00:14:59,465 Midagi muud on Quiz 0? 322 00:14:59,465 --> 00:15:08,940 323 00:15:08,940 --> 00:15:09,920 >> Liigume edasi. 324 00:15:09,920 --> 00:15:15,260 Faili I / O. On imeline lühike Selle nädala faili I / O, mis loodetavasti 325 00:15:15,260 --> 00:15:19,270 olete jälginud mitu korda ja imetletud. 326 00:15:19,270 --> 00:15:22,910 Palju tööd läks, et, ja ma olen kuulis ta on hullult kasulik. 327 00:15:22,910 --> 00:15:25,740 Ma ka link sellele slaidile juhul kui sa ei ole olnud 328 00:15:25,740 --> 00:15:29,160 võimalus vaadata seda 10 korda. 329 00:15:29,160 --> 00:15:35,280 >> Niisiis, me korraks minna üle olulisi samme avamise ja töö 330 00:15:35,280 --> 00:15:38,400 faile, ja siis me sukelduda kodeerimise probleem enne 331 00:15:38,400 --> 00:15:40,400 uurides probleem komplekti. 332 00:15:40,400 --> 00:15:44,330 Nii et taas, ma panen selle üles ekraan, kuid ma lähen rääkida 333 00:15:44,330 --> 00:15:47,630 korraks, mida me oleme siin teed failiga I/O-- 334 00:15:47,630 --> 00:15:49,090 Mida see tähendab? 335 00:15:49,090 --> 00:15:55,280 >> See tähendab, et me saame luua meie programmid, ja siis on meie programmid 336 00:15:55,280 --> 00:16:00,370 exit ja ei teinud mingit mõju maailma väljaspool meie programmi. 337 00:16:00,370 --> 00:16:04,630 Aga kui me alustada tööd failid - nii lugedes neid ja luua 338 00:16:04,630 --> 00:16:10,460 neid - meil on mõningane mõju maailma väljaspool meie programmi. 339 00:16:10,460 --> 00:16:15,440 >> Just nagu siis, kui Microsoft Word ei suutnud teha mis tahes Wordi dokumente, siis 340 00:16:15,440 --> 00:16:18,710 kui Microsoft Word loobuda, kõik oma Töö oleks läinud, ja see oleks 341 00:16:18,710 --> 00:16:19,740 tõesti mõttetu. 342 00:16:19,740 --> 00:16:23,620 Me lõpuks tahame, et oleks võimalik kirjutada programme, mis võivad mõjutada 343 00:16:23,620 --> 00:16:31,350 maailma, nii võttes sisse keeruline sisendid - nii faile ja 344 00:16:31,350 --> 00:16:37,080 kaudu faile ja ka luua huvitav ja kaalukad väljundid - 345 00:16:37,080 --> 00:16:39,520 poolest erinevaid faile. 346 00:16:39,520 --> 00:16:43,730 >> Nii et on põhjus, miks me oleme hakanud õppida, kuidas teha koostööd faile. 347 00:16:43,730 --> 00:16:47,080 Täpsemalt, mida meil on järgmine. 348 00:16:47,080 --> 00:16:47,680 See on väga lihtne. 349 00:16:47,680 --> 00:16:51,530 On ainult paar sammu, ja need on loetletud siin see kood. 350 00:16:51,530 --> 00:16:55,130 Nii et me läheme läbi Selle koodi rea kaupa. 351 00:16:55,130 --> 00:16:57,630 >> Esiteks, sa näed esile - 352 00:16:57,630 --> 00:17:01,330 kui te töötate fail olenemata sellest, millist tüüpi fail see on, 353 00:17:01,330 --> 00:17:02,670 sa pead seda avada. 354 00:17:02,670 --> 00:17:05,130 Ja see on koos kõne fopen - 355 00:17:05,130 --> 00:17:05,950 siin. 356 00:17:05,950 --> 00:17:07,980 Sa sisaldama faili nimi. 357 00:17:07,980 --> 00:17:11,930 Kui fail ei ole teie kataloogi või kausta, kus see programm 358 00:17:11,930 --> 00:17:15,910 elu, siis on vaja ka lisada tee, kui see fail on. 359 00:17:15,910 --> 00:17:19,099 >> Me eeldame, et see fail nimega "text.txt" - 360 00:17:19,099 --> 00:17:24,220 lihtsa teksti dokument - on samas kaustas on see programm on. 361 00:17:24,220 --> 00:17:26,859 Nii et on veel üks asi, mida meeles pidades -, et kui sa tahad, et avada fail 362 00:17:26,859 --> 00:17:30,050 kusagil mujal, mida tegelikult vaja lisada oma asukohta. 363 00:17:30,050 --> 00:17:33,520 >> Teiseks, te ei liigu argument fopen, ja see on, mida sa tahad teha, 364 00:17:33,520 --> 00:17:34,620 failiga. 365 00:17:34,620 --> 00:17:38,450 On olemas kolm peamist argumenti, et sa lähed läheb fopen. 366 00:17:38,450 --> 00:17:40,060 Kes saab mulle need kolm? 367 00:17:40,060 --> 00:17:44,960 368 00:17:44,960 --> 00:17:47,130 Kes saab mulle üks neist? 369 00:17:47,130 --> 00:17:48,130 Jah. 370 00:17:48,130 --> 00:17:50,010 >> STUDENT 4: faili nimi on? 371 00:17:50,010 --> 00:17:50,440 >> JASON Hirschhorn: Vabandust. 372 00:17:50,440 --> 00:17:55,490 Kolm peamised argumendid saab läbida kui teine ​​argument fopen. 373 00:17:55,490 --> 00:17:57,060 Sul on õigus - faili nimi on esimene argument. 374 00:17:57,060 --> 00:18:01,620 Aga teine ​​argument fopen on tavaliselt kolm stringid ja - jah. 375 00:18:01,620 --> 00:18:02,210 Aleja. 376 00:18:02,210 --> 00:18:03,490 >> Aleja: A append. 377 00:18:03,490 --> 00:18:06,840 >> JASON Hirschhorn:, kui soovite lisab fail on juba olemas. 378 00:18:06,840 --> 00:18:07,810 >> STUDENT 5: R lugemiseks. 379 00:18:07,810 --> 00:18:09,930 >> JASON Hirschhorn: R, kui sa soovite lugeda failist. 380 00:18:09,930 --> 00:18:10,670 >> STUDENT 6: W kirjutada. 381 00:18:10,670 --> 00:18:12,840 >> JASON Hirschhorn Ja w, kui te soovite kirjutada faili. 382 00:18:12,840 --> 00:18:17,570 Nii et kui oleme kirjutan faili, nii et meil on w. 383 00:18:17,570 --> 00:18:22,360 Avate, on teil ka säästa kusagil, ja see on koos 384 00:18:22,360 --> 00:18:26,000 koodi vasakul pool omistamisoperaatorile - 385 00:18:26,000 --> 00:18:31,220 Ma loon kursor faili kutsutud, sel juhul faili. 386 00:18:31,220 --> 00:18:36,070 >> Me ei muretse, mida see kõik mütsid FAIL asi on. 387 00:18:36,070 --> 00:18:40,600 Piisab, kui öelda, et see on pikk vool nulli ja ones. 388 00:18:40,600 --> 00:18:44,970 Ja see, kuidas me see töötab ja seda mõista. 389 00:18:44,970 --> 00:18:47,300 >> Järgmine asi, mida me peame tegema - ja see on väga oluline - 390 00:18:47,300 --> 00:18:49,070 kui avate faili - 391 00:18:49,070 --> 00:18:54,250 Tegelikult, kui sa helistada malloc jaoks Näiteks ja saaksin mälu ja proovida 392 00:18:54,250 --> 00:18:57,980 ja salvestage see pointer, sa alati tahad veenduge, et 393 00:18:57,980 --> 00:19:00,230 funktsioon ei taastunud null. 394 00:19:00,230 --> 00:19:05,230 >> Nii et sel juhul on kontroll teha kindel, et me tegelikult avatud 395 00:19:05,230 --> 00:19:10,230 faili õigesti, ja ei olnud ei vea meie programmis. 396 00:19:10,230 --> 00:19:15,160 Järgmine kord oleme kontrollida veendumaks, et et meil on töö fail, saame 397 00:19:15,160 --> 00:19:18,520 kirjutada või lugeda, või lisab faili. 398 00:19:18,520 --> 00:19:24,270 Sel juhul ma lihtsalt printimine üks rida sellele failile. 399 00:19:24,270 --> 00:19:25,450 >> Kuidas ma tean seda? 400 00:19:25,450 --> 00:19:27,990 Noh, ma kasutan seda funktsiooni nimetatakse fprintf. 401 00:19:27,990 --> 00:19:30,970 Kõik funktsioonid, mida kasutate kui kirjalikult või lugemine või 402 00:19:30,970 --> 00:19:34,950 manipuleerides failid on sarnased funktsioonid, mida varem näinud, kuid 403 00:19:34,950 --> 00:19:38,420 algavad tähega F, seisma faili. 404 00:19:38,420 --> 00:19:43,440 Ja fprintf erinevalt meie tavaline print app, võtab veel ühe argumendi, 405 00:19:43,440 --> 00:19:47,800 ja see on fail, kus te soovite printida seda joont. 406 00:19:47,800 --> 00:19:50,640 >> Mul ei ole midagi õigust Ohai. 407 00:19:50,640 --> 00:19:52,860 Ma ei ole kolmanda argument, et printf - 408 00:19:52,860 --> 00:19:57,030 või teine ​​argument printf, Kolmas argument, et fprintf, sest ma 409 00:19:57,030 --> 00:19:59,480 ei ole mingit kohahoidjad siin. 410 00:19:59,480 --> 00:20:01,070 Ma ei sealhulgas muutujad. 411 00:20:01,070 --> 00:20:06,070 Aga jälle, fprintf ja kõik need faili funktsioonid, mis töötavad koos faile 412 00:20:06,070 --> 00:20:09,820 tavaliselt läheb vaja faili mil nad tegutsevad. 413 00:20:09,820 --> 00:20:15,960 >> Lõpuks viimane oluline asi teha on sulgeda fail, just nagu 414 00:20:15,960 --> 00:20:19,530 koos - kui me malloc midagi, me tahame vaba midagi, et me 415 00:20:19,530 --> 00:20:22,730 mäluleke - tahame sulgeda oma faili. 416 00:20:22,730 --> 00:20:28,180 Kui see programm lahkus sulgemata fail, koefitsiendid on midagi läheks 417 00:20:28,180 --> 00:20:30,050 vale, eriti kui see oli väike fail. 418 00:20:30,050 --> 00:20:35,020 >> Aga see on kindlasti hea kodeerimine stiili ja praktika alati sulgege fail 419 00:20:35,020 --> 00:20:38,050 Kui olete lõpetanud, kasutades seda. 420 00:20:38,050 --> 00:20:43,630 Nii et on põhitõed Faili I / O. Te olete ilmselt näinud seda või 421 00:20:43,630 --> 00:20:45,710 vaatasin seda selles fantastiline lühike. 422 00:20:45,710 --> 00:20:48,410 Kas kellelgi on küsimusi, enne me minna mõnda tava kodeerimine 423 00:20:48,410 --> 00:20:51,800 probleeme, faili I / O või samme ma läksin üle? 424 00:20:51,800 --> 00:21:00,198 425 00:21:00,198 --> 00:21:03,162 >> [TYPING SOUNDS] 426 00:21:03,162 --> 00:21:04,150 >> JASON Hirschhorn: Kas sulle on küsimus, Avi? 427 00:21:04,150 --> 00:21:04,660 >> AVI: Ei 428 00:21:04,660 --> 00:21:04,740 >> JASON Hirschhorn: OK. 429 00:21:04,740 --> 00:21:06,746 Ma oota veel seitse sekundit. 430 00:21:06,746 --> 00:21:07,590 [Naerab] 431 00:21:07,590 --> 00:21:08,620 See on tõesti hea ots. 432 00:21:08,620 --> 00:21:10,750 Te lihtsalt ei meeldi küsimusi. 433 00:21:10,750 --> 00:21:11,660 See on hea. 434 00:21:11,660 --> 00:21:12,330 OK. 435 00:21:12,330 --> 00:21:17,620 Nii et meie esimene praktika probleem on, me oleme kavatse dubleerida funktsioon 436 00:21:17,620 --> 00:21:22,330 käsurea tööriista, mida tõenäoliselt Kasutada enne - koopia - 437 00:21:22,330 --> 00:21:23,500 koopia vahend. 438 00:21:23,500 --> 00:21:28,050 Kui kirjutad cp ja siis andke seda kaks argumente oma terminal, saate 439 00:21:28,050 --> 00:21:28,980 kopeerida faili. 440 00:21:28,980 --> 00:21:31,220 Ja see on see, mida me kirjutada kohe. 441 00:21:31,220 --> 00:21:35,830 >> Nii et taas, lugedes selle pealt slaidi, ma kirjutada programm, mis võtab 442 00:21:35,830 --> 00:21:38,130 kaks ja ainult kaks käsurea argumendid - 443 00:21:38,130 --> 00:21:40,750 lähtefaili ja sihtkoht faili - 444 00:21:40,750 --> 00:21:44,590 ja koopiate sisu allikas faili sihtkohta fail 445 00:21:44,590 --> 00:21:46,960 üks bait korraga. 446 00:21:46,960 --> 00:21:48,510 Nii et palju küsida. 447 00:21:48,510 --> 00:21:52,200 >> Jällegi hea lähenemine on see, et mitte minna otse C-koodi, kuid 448 00:21:52,200 --> 00:21:54,280 jaotada see paar sammu. 449 00:21:54,280 --> 00:21:58,400 Kõigepealt mõtle loogika - täpselt mida ma palun teil teha - 450 00:21:58,400 --> 00:22:00,620 ja mõista kõiki samme selle probleemi. 451 00:22:00,620 --> 00:22:04,410 Mitte C, vaid mõnes pseudokoodi, või isegi vaimne mudel 452 00:22:04,410 --> 00:22:06,030 mis toimub. 453 00:22:06,030 --> 00:22:10,050 >> Järgmine kord pead pseudokoodi alla nuputada, kuidas pseudokoodi 454 00:22:10,050 --> 00:22:14,600 kaartide peale tööriistu ja asju, mida me oleme õppinud kasutama C. 455 00:22:14,600 --> 00:22:19,070 >> Ja lõpuks, kui sul on kõik, mis koos, siis saab koodi probleemi. 456 00:22:19,070 --> 00:22:23,370 Testi 5-10 minutit tööd selle probleemi. 457 00:22:23,370 --> 00:22:25,800 Panen juhiseid tagasi üles teine. 458 00:22:25,800 --> 00:22:27,990 Ja siis me läheme üle pseudokoodi ja kood 459 00:22:27,990 --> 00:22:29,230 ta elab rühmana. 460 00:22:29,230 --> 00:22:31,640 >> Kui teil on küsimusi, kui oled tegeleb selle julgelt tõsta 461 00:22:31,640 --> 00:22:34,260 oma käsi ja ma tulen ümber ja neile vastata. 462 00:22:34,260 --> 00:22:37,020 463 00:22:37,020 --> 00:22:39,330 >> STUDENT 7: Kas ma kaevukook paberile? 464 00:22:39,330 --> 00:22:41,537 >> JASON Hirschhorn: Mis toimub? 465 00:22:41,537 --> 00:26:46,047 466 00:26:46,047 --> 00:26:48,043 >> [TYPING SOUNDS] 467 00:26:48,043 --> 00:26:48,730 >> JASON Hirschhorn: OK. 468 00:26:48,730 --> 00:26:51,710 Lähme üle pseudokoodi esimene ja siis ma annan sulle veel paar 469 00:26:51,710 --> 00:26:52,960 minutit, et lõpetada kodeerimine. 470 00:26:52,960 --> 00:26:55,540 471 00:26:55,540 --> 00:26:58,650 >> Kes tahaks alustuseks esimese rea 472 00:26:58,650 --> 00:27:00,030 pseudokoodi seda funktsiooni? 473 00:27:00,030 --> 00:27:03,330 474 00:27:03,330 --> 00:27:05,740 >> STUDENT 8: Veenduge, et sa said kaks faili. 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 Ja kui me ei ole? 478 00:27:22,990 --> 00:27:25,974 >> STUDENT 8: Ma tagasi 0. 479 00:27:25,974 --> 00:27:27,872 >> JASON Hirschhorn: Kas me peaksime tagasi 0? 480 00:27:27,872 --> 00:27:30,182 >> STUDENT 8: Edasi-tagasi - 481 00:27:30,182 --> 00:27:30,650 umbne. 482 00:27:30,650 --> 00:27:30,850 Vabandust. 483 00:27:30,850 --> 00:27:31,210 >> JASON Hirschhorn: Jah. 484 00:27:31,210 --> 00:27:32,710 Tõenäoliselt mitte 0. 485 00:27:32,710 --> 00:27:34,680 Kuna 0 tähendab, et kõik oli hea. 486 00:27:34,680 --> 00:27:35,030 OK. 487 00:27:35,030 --> 00:27:36,730 Nii et esimene rida kohta pseudokoodi. 488 00:27:36,730 --> 00:27:38,715 Kes on teisel real pseudokoodi? 489 00:27:38,715 --> 00:27:40,630 >> STUDENT 9: Open nii faili? 490 00:27:40,630 --> 00:27:41,880 >> JASON Hirschhorn: Ava mõlemad failid. 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: Kontrollige, kui fail on NULL? 494 00:27:52,850 --> 00:28:10,906 495 00:28:10,906 --> 00:28:12,580 >> JASON Hirschhorn: Kontrollige, Kindlasti ei ole ka NULL. 496 00:28:12,580 --> 00:28:15,800 Nagu kõrvale - 497 00:28:15,800 --> 00:28:17,540 kaldkriips 0 - 498 00:28:17,540 --> 00:28:18,887 on see, et NULL? 499 00:28:18,887 --> 00:28:20,080 >> STUDENT 11: Ei 500 00:28:20,080 --> 00:28:21,190 >> JASON Hirschhorn: See ei ole NULL. 501 00:28:21,190 --> 00:28:23,400 Seda nimetatakse NULL terminaator. 502 00:28:23,400 --> 00:28:25,580 See on tegelikult kirjutatud ainult üks l. 503 00:28:25,580 --> 00:28:28,580 Nii kontroll midagi selle vastu - see on tegelikult märk - 504 00:28:28,580 --> 00:28:31,710 nii kontrollimise vastu midagi, mis on ei ole sama, kontrollides, et näha, kui see 505 00:28:31,710 --> 00:28:32,690 võrdub NULL. 506 00:28:32,690 --> 00:28:34,100 >> Ja mõned inimesed - 507 00:28:34,100 --> 00:28:36,040 oma viktoriinid ja probleem komplekti - on saanud 508 00:28:36,040 --> 00:28:36,890 kaks neist segaduses. 509 00:28:36,890 --> 00:28:38,830 Kuid kaks neist on tegelikult erinevad. 510 00:28:38,830 --> 00:28:40,220 Üks lõpeb string - 511 00:28:40,220 --> 00:28:43,210 üks on viit 0. 512 00:28:43,210 --> 00:28:46,490 >> STUDENT 12: Miks sa ei vaadata, veenduge, et failid ei ole NULL 513 00:28:46,490 --> 00:28:48,670 enne, kui avate need? 514 00:28:48,670 --> 00:28:54,772 >> JASON Hirschhorn: Nii avatud säästab midagi selles failis. 515 00:28:54,772 --> 00:28:57,780 Ja kui sa lähed tagasi siin - 516 00:28:57,780 --> 00:28:59,520 nii see rida - fopen - 517 00:28:59,520 --> 00:29:05,300 annan teile aadressi ja kauplus et aadress faili, kui see töötab. 518 00:29:05,300 --> 00:29:07,650 Kui see ei tööta, siis salvestab NULL - 519 00:29:07,650 --> 00:29:08,020 >> STUDENT 12: Oh. 520 00:29:08,020 --> 00:29:08,180 OK. 521 00:29:08,180 --> 00:29:08,500 On sulle. 522 00:29:08,500 --> 00:29:09,050 >> JASON Hirschhorn: In fail. 523 00:29:09,050 --> 00:29:11,990 Nii et sa ei saa kontrollida NULL Enne olete avanud neile. 524 00:29:11,990 --> 00:29:13,520 NULL tähendab midagi ei korralikult töötada. 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 Seega veenduge, et kumbki on? 528 00:29:22,590 --> 00:29:23,200 Või on? 529 00:29:23,200 --> 00:29:23,770 Mida me arvame? 530 00:29:23,770 --> 00:29:24,310 Me läheme selle. 531 00:29:24,310 --> 00:29:24,520 >> STUDENT 13: Kas. 532 00:29:24,520 --> 00:29:25,020 >> JASON Hirschhorn: Kas? 533 00:29:25,020 --> 00:29:25,930 Samuti ei ole? 534 00:29:25,930 --> 00:29:26,350 >> STUDENT 13: Kas. 535 00:29:26,350 --> 00:29:26,390 >> JASON Hirschhorn: OK. 536 00:29:26,390 --> 00:29:28,510 Tundub, et mõned üksmeele. 537 00:29:28,510 --> 00:29:30,520 Samuti on NULL. 538 00:29:30,520 --> 00:29:32,250 OK, järgmine rida pseudokoodi. 539 00:29:32,250 --> 00:29:33,600 Kes ei ole andnud mulle rida veel? 540 00:29:33,600 --> 00:29:37,350 541 00:29:37,350 --> 00:29:38,295 Me ootame teid. 542 00:29:38,295 --> 00:29:39,020 Jah. 543 00:29:39,020 --> 00:29:40,895 >> STUDENT 14: Sa pead lugema esimese faili? 544 00:29:40,895 --> 00:29:42,290 >> JASON Hirschhorn: OK. 545 00:29:42,290 --> 00:29:46,240 >> STUDENT 14: Või kasutame fscanf või midagi sellist esimest faili? 546 00:29:46,240 --> 00:29:50,650 >> JASON Hirschhorn: Nii et me tahame loe esimene fail ja - 547 00:29:50,650 --> 00:29:51,900 paneme selle siia. 548 00:29:51,900 --> 00:30:00,600 549 00:30:00,600 --> 00:30:01,880 Loe lähtefaili. 550 00:30:01,880 --> 00:30:05,370 Ja siis, mida me teeme, kui me lugeda lähtefaili? 551 00:30:05,370 --> 00:30:06,620 Keegi teine? 552 00:30:06,620 --> 00:30:09,150 553 00:30:09,150 --> 00:30:12,190 >> STUDENT 15: kirjuta kohtades faili? 554 00:30:12,190 --> 00:30:22,080 555 00:30:22,080 --> 00:30:25,620 >> JASON Hirschhorn: Me kirjutada sihtfailide ja - 556 00:30:25,620 --> 00:30:26,210 OK. 557 00:30:26,210 --> 00:30:30,030 Mida muud me kadunud? 558 00:30:30,030 --> 00:30:32,460 Keegi teine, kes ei andnud mulle koodirida veel - on pseudokoodi. 559 00:30:32,460 --> 00:30:33,510 Jah. 560 00:30:33,510 --> 00:30:36,540 >> STUDENT 16: Äkki saate alati kontrollida kas seal on midagi lugeda, 561 00:30:36,540 --> 00:30:37,970 nagu järgmisele reale? 562 00:30:37,970 --> 00:30:39,550 See on nagu järgmisele reale vaata, kui see on olemas. 563 00:30:39,550 --> 00:30:40,660 >> [Helid] 564 00:30:40,660 --> 00:30:41,095 >> JASON Hirschhorn: Oops. 565 00:30:41,095 --> 00:30:43,120 See on minu journaling tarkvara. 566 00:30:43,120 --> 00:30:43,580 Jah? 567 00:30:43,580 --> 00:30:44,960 >> STUDENT 16: Jah. 568 00:30:44,960 --> 00:30:48,940 >> JASON Hirschhorn: Nii et anna see mulle veel üks kord. 569 00:30:48,940 --> 00:30:51,640 >> STUDENT 16: Kontrollige, kas seal on veel järgmise joont 570 00:30:51,640 --> 00:30:52,920 lähtefaili lugeda. 571 00:30:52,920 --> 00:30:53,500 >> JASON Hirschhorn: OK. 572 00:30:53,500 --> 00:30:56,060 Nii et me ei loe sarjad - lugesid baiti siin - 573 00:30:56,060 --> 00:30:57,590 aga sina oled õige. 574 00:30:57,590 --> 00:31:00,040 Me tahame, et lugeda ja kirjutada, kuni pole enam baiti. 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 Ja nii need peaks tõesti olema liigestatud natuke, sest nad on seal all. 578 00:31:16,940 --> 00:31:17,470 Eks ole? 579 00:31:17,470 --> 00:31:20,620 Seni oleme välja bytes, me läheme lugeda lähtefaili ja kirjutada 580 00:31:20,620 --> 00:31:22,160 sihtkohta faili. 581 00:31:22,160 --> 00:31:24,510 >> Ja siis, mida on viimati rida pseudokoodi? 582 00:31:24,510 --> 00:31:26,380 Keegi, kes ei andnud mulle midagi veel. 583 00:31:26,380 --> 00:31:29,270 584 00:31:29,270 --> 00:31:30,260 >> STUDENT 17: Sulgege failid? 585 00:31:30,260 --> 00:31:31,510 >> JASON Hirschhorn: Täpselt. 586 00:31:31,510 --> 00:31:36,370 587 00:31:36,370 --> 00:31:37,450 Sulgege faile. 588 00:31:37,450 --> 00:31:38,400 Nii et meie pseudokoodi. 589 00:31:38,400 --> 00:31:41,870 Ma panen pseudokoodi sisse gedit ja paar minutit me 590 00:31:41,870 --> 00:31:44,626 saab kodeerida seda koos. 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 Olgem alustada rühmana. 594 00:33:58,290 --> 00:33:59,940 Nishant, mul on uus fail. 595 00:33:59,940 --> 00:34:01,130 Ma olen lihtsalt avas selle üles. 596 00:34:01,130 --> 00:34:01,880 Untitled Document 1. 597 00:34:01,880 --> 00:34:05,490 Mis on esimene asi, mida ma peaks tegema? 598 00:34:05,490 --> 00:34:07,040 >> Nishant: raamatukogud? 599 00:34:07,040 --> 00:34:08,219 >> JASON Hirschhorn: OK. 600 00:34:08,219 --> 00:34:11,070 Mida raamatukogud? 601 00:34:11,070 --> 00:34:17,570 >> Nishant: stdio.h, stdlib.h, ma usun? 602 00:34:17,570 --> 00:34:18,000 >> JASON Hirschhorn: OK. 603 00:34:18,000 --> 00:34:21,592 Mis on stdlib eest? 604 00:34:21,592 --> 00:34:23,010 >> Nishant: Ma unustasin. 605 00:34:23,010 --> 00:34:23,219 >> JASON Hirschhorn: OK. 606 00:34:23,219 --> 00:34:24,179 Nii sisaldavad stdio. 607 00:34:24,179 --> 00:34:28,630 Mida ma peaksin tegema isegi enne Hakkan kodeerimine? 608 00:34:28,630 --> 00:34:29,710 >> Nishant: Kirjutage header? 609 00:34:29,710 --> 00:34:31,830 >> JASON Hirschhorn: Kuidas ma saan seda värvilised? 610 00:34:31,830 --> 00:34:34,060 >> [Astudes VOICES] 611 00:34:34,060 --> 00:34:35,040 >> Nishant: Kuidas sa saad seda värvi? 612 00:34:35,040 --> 00:34:38,060 >> JASON Hirschhorn: Kuidas ma värvikoodi? 613 00:34:38,060 --> 00:34:38,570 >> Nishant: Ma ei tea. 614 00:34:38,570 --> 00:34:38,830 Oh. 615 00:34:38,830 --> 00:34:39,389 Salvesta. 616 00:34:39,389 --> 00:34:39,929 >> JASON Hirschhorn: Salvesta. 617 00:34:39,929 --> 00:34:40,270 Jah. 618 00:34:40,270 --> 00:34:41,760 Ma salvestada see. C. 619 00:34:41,760 --> 00:34:46,239 Nii salvestage see töölauale cp.c. 620 00:34:46,239 --> 00:34:47,280 Sweet. 621 00:34:47,280 --> 00:34:51,199 Ja kui ma tahan saada täielik stiil punktid, mida ma peaksin 622 00:34:51,199 --> 00:34:53,085 sisaldavad tipus? 623 00:34:53,085 --> 00:34:58,390 >> Nishant: Sa võid kirjutada oma nime, nime programmi ja eesmärk 624 00:34:58,390 --> 00:34:59,640 programmi ka? 625 00:34:59,640 --> 00:35:08,400 626 00:35:08,400 --> 00:35:10,040 >> JASON Hirschhorn: Paistab hea. 627 00:35:10,040 --> 00:35:10,470 Suurepärane. 628 00:35:10,470 --> 00:35:12,940 Nii et olete hakanud meid täiuslikult. 629 00:35:12,940 --> 00:35:13,720 # Include - 630 00:35:13,720 --> 00:35:15,365 me ka kirjutada - 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 Nii et ma arvan, et ma olen kõik seatud minna. 634 00:35:33,520 --> 00:35:38,003 Kes on esimene rida koodi minu jaoks - või esimest rida koodi mis 635 00:35:38,003 --> 00:35:41,280 ta võtab, et rahuldada meie esimene kommenteerima pseudokoodi? 636 00:35:41,280 --> 00:35:41,985 You. 637 00:35:41,985 --> 00:35:48,780 >> STUDENT 18: Kas see ei peaks olema int argc ja siis char * argv? 638 00:35:48,780 --> 00:35:49,490 >> JASON Hirschhorn: Ma arvan, sul on õigus. 639 00:35:49,490 --> 00:35:56,270 Muudame seda int, avatud paren, int argc, koma char * argv? 640 00:35:56,270 --> 00:35:57,150 Niimoodi? 641 00:35:57,150 --> 00:35:57,410 >> STUDENT 18: Brackets. 642 00:35:57,410 --> 00:35:58,260 >> JASON Hirschhorn: Brackets. 643 00:35:58,260 --> 00:35:59,860 Sulg, sulg, lähedal vanem. 644 00:35:59,860 --> 00:36:00,240 Perfect. 645 00:36:00,240 --> 00:36:02,160 Nüüd ma saan võtta käsurea argumente. 646 00:36:02,160 --> 00:36:02,430 OK. 647 00:36:02,430 --> 00:36:04,250 Veenduge, et me antud kaks faili. 648 00:36:04,250 --> 00:36:07,905 Sa ei anna mulle samuti. 649 00:36:07,905 --> 00:36:09,180 >> STUDENT 18: Kui argc - 650 00:36:09,180 --> 00:36:11,060 see ei ole võrdne 3. 651 00:36:11,060 --> 00:36:14,360 >> JASON Hirschhorn: Kui avatud paren argc ei võrdu 3? 652 00:36:14,360 --> 00:36:16,970 >> STUDENT 18: Jah, te tagasi 1 või midagi. 653 00:36:16,970 --> 00:36:17,460 >> JASON Hirschhorn: Vabandust. 654 00:36:17,460 --> 00:36:19,120 >> STUDENT 18: Tagasi 1 või midagi. 655 00:36:19,120 --> 00:36:20,270 >> JASON Hirschhorn: Tagasi 1. 656 00:36:20,270 --> 00:36:22,230 OK? 657 00:36:22,230 --> 00:36:22,970 Suur. 658 00:36:22,970 --> 00:36:24,290 Ava mõlemad failid. 659 00:36:24,290 --> 00:36:26,160 Kes saab mind aidata avada nii faile? 660 00:36:26,160 --> 00:36:28,125 Kes ei ole mulle veel koodi? 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: Nii et kõik korgid F-I-L-E star allikas. 664 00:36:36,145 --> 00:36:39,390 665 00:36:39,390 --> 00:36:40,920 >> JASON Hirschhorn: ma lähen võtta välja vokaalid. 666 00:36:40,920 --> 00:36:41,570 Need on lahedad. 667 00:36:41,570 --> 00:36:42,716 See on nagu Tumblr. 668 00:36:42,716 --> 00:36:44,610 >> STUDENT 18: Vastus fopen - 669 00:36:44,610 --> 00:36:46,612 >> JASON Hirschhorn: Vastus fopen? 670 00:36:46,612 --> 00:36:49,870 >> STUDENT 18: Avatud paren, argv, sulg. 671 00:36:49,870 --> 00:36:50,055 >> JASON Hirschhorn: Oota. 672 00:36:50,055 --> 00:36:50,240 Vabandust. 673 00:36:50,240 --> 00:36:51,050 Avatud paren. 674 00:36:51,050 --> 00:36:51,456 OK. 675 00:36:51,456 --> 00:36:53,080 >> STUDENT 18: Jah. 676 00:36:53,080 --> 00:36:55,110 ARGV sub 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: Jah. 679 00:36:56,140 --> 00:36:58,540 ARGV sulg 1 - 680 00:36:58,540 --> 00:36:59,730 Jah. 681 00:36:59,730 --> 00:37:06,470 Ja siis koma ja seejärel avage topelt quote, r, jutumärke, 682 00:37:06,470 --> 00:37:08,250 lähedal paren, semikoolon. 683 00:37:08,250 --> 00:37:09,450 >> JASON Hirschhorn: Sweet. 684 00:37:09,450 --> 00:37:10,950 Ja mis see teine? 685 00:37:10,950 --> 00:37:16,030 >> STUDENT 18: väga sarnased, kuid mitte S-R-C, siis tahaks seda nimetada D-S-T. 686 00:37:16,030 --> 00:37:17,060 >> JASON Hirschhorn: Oo! 687 00:37:17,060 --> 00:37:17,772 Mulle meeldib see. 688 00:37:17,772 --> 00:37:20,010 >> STUDENT 18: Just D-S-T. Jah. 689 00:37:20,010 --> 00:37:23,057 Ja siis ARGV, sulg, 2. 690 00:37:23,057 --> 00:37:23,200 Jah. 691 00:37:23,200 --> 00:37:26,720 Ja siis w asemel r. 692 00:37:26,720 --> 00:37:27,620 Jah. 693 00:37:27,620 --> 00:37:29,630 >> JASON Hirschhorn: Suur. 694 00:37:29,630 --> 00:37:31,360 Järgmine paar rida. 695 00:37:31,360 --> 00:37:34,040 Samuti, kui keegi on asju lisada jooned, mis me oleme teinud, võid vabalt 696 00:37:34,040 --> 00:37:35,690 lisada need samuti. 697 00:37:35,690 --> 00:37:37,520 Veenduge, ei ole NULL. 698 00:37:37,520 --> 00:37:41,450 Kes saab mulle koodi pean vasta sellele reale pseudokoodi? 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 >> Ambur: kui src võrdne võrdsete NULL või dst võrdne võrdsete 702 00:37:58,645 --> 00:38:04,590 NULL, siis tagasi - 703 00:38:04,590 --> 00:38:07,130 704 00:38:07,130 --> 00:38:07,976 >> JASON Hirschhorn: Mis on? 705 00:38:07,976 --> 00:38:08,890 >> Ambur: Mine 2? 706 00:38:08,890 --> 00:38:09,760 >> JASON Hirschhorn: Return 2. 707 00:38:09,760 --> 00:38:14,400 Nii et kui avatud paren src võrdub võrdub NULL või - 708 00:38:14,400 --> 00:38:15,590 mis iganes see thing's - toru? 709 00:38:15,590 --> 00:38:16,346 Pipe? 710 00:38:16,346 --> 00:38:17,140 Me nimetame seda toru. 711 00:38:17,140 --> 00:38:22,340 Toru, toru, dst võrdne võrdsete NULL, tagastab 2. 712 00:38:22,340 --> 00:38:23,900 OK? 713 00:38:23,900 --> 00:38:26,060 Seni oleme välja baitide - 714 00:38:26,060 --> 00:38:29,820 me omamoodi vahele üle selle sammu kaugusel pseudokoodi osa läheb siin. 715 00:38:29,820 --> 00:38:31,970 >> Kuid seni, kuni me välja baitide - mida see kõlab nagu? 716 00:38:31,970 --> 00:38:34,680 Mis tüüpi C struktuur - 717 00:38:34,680 --> 00:38:36,160 aga ma ei kasuta sõna struktuuri, sest me ei kavatse hakata kasutama 718 00:38:36,160 --> 00:38:37,350 et muudel juhtudel - 719 00:38:37,350 --> 00:38:39,495 kuid C tööriist Kuidas kõlab? 720 00:38:39,495 --> 00:38:39,970 >> STUDENT 19: loop. 721 00:38:39,970 --> 00:38:40,980 >> JASON Hirschhorn: loop. 722 00:38:40,980 --> 00:38:43,060 Sarnane loop. 723 00:38:43,060 --> 00:38:49,670 Seega, kes saab anda mulle esimene rida loop koodi siin? 724 00:38:49,670 --> 00:38:56,320 725 00:38:56,320 --> 00:39:01,980 Võite ka valida, millist loop sa tahad, kui sa annad mulle 726 00:39:01,980 --> 00:39:03,215 see rida koodi. 727 00:39:03,215 --> 00:39:04,150 Seal on kolme tüüpi. 728 00:39:04,150 --> 00:39:06,530 Sa saad valida. 729 00:39:06,530 --> 00:39:08,080 Pakun üks neist. 730 00:39:08,080 --> 00:39:08,410 Avi. 731 00:39:08,410 --> 00:39:09,230 Kumba sa tahad? 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 võrdub nulliga. 735 00:39:15,180 --> 00:39:17,360 >> JASON Hirschhorn: OK. 736 00:39:17,360 --> 00:39:18,570 >> AVI: See osa ma ei ole kindel. 737 00:39:18,570 --> 00:39:29,080 Kuid i on väiksem suurus star allikas? 738 00:39:29,080 --> 00:39:31,128 Ma ei ole kindel. 739 00:39:31,128 --> 00:39:32,580 >> JASON Hirschhorn: OK. 740 00:39:32,580 --> 00:39:35,870 >> AVI: Sest sa tahad Faili suuruse, eks? 741 00:39:35,870 --> 00:39:41,090 >> JASON Hirschhorn: Nii see ilmselt ei annab meile suuruse tegeliku 742 00:39:41,090 --> 00:39:43,010 baitides. 743 00:39:43,010 --> 00:39:47,680 Niisiis, mida võiks veel teha? 744 00:39:47,680 --> 00:39:48,810 Mis on teist tüüpi loop? 745 00:39:48,810 --> 00:39:50,180 Või peaksime kinni loop? 746 00:39:50,180 --> 00:39:55,350 747 00:39:55,350 --> 00:39:57,900 >> STUDENT 20: Kas sa teeksid samas silmus? 748 00:39:57,900 --> 00:40:01,350 Ja siis, mida sa teed on you'd - 749 00:40:01,350 --> 00:40:03,930 sest meil on char * faili. 750 00:40:03,930 --> 00:40:07,950 Nii et kui me muudkui incrementing et kuni me leida NULL märgi 751 00:40:07,950 --> 00:40:08,500 lõpuks on? 752 00:40:08,500 --> 00:40:11,130 Või ei ole see, et ei ole, kuidas faile töötab? 753 00:40:11,130 --> 00:40:14,300 >> JASON Hirschhorn: Nii suudame hoida incrementing char * 754 00:40:14,300 --> 00:40:16,340 kuni leiame NULL - 755 00:40:16,340 --> 00:40:18,580 >> STUDENT 20: Põhimõtteliselt käiks tähemärgi haaval, kuni me hit 756 00:40:18,580 --> 00:40:21,250 Faili lõpus. 757 00:40:21,250 --> 00:40:21,600 >> JASON Hirschhorn: Jah. 758 00:40:21,600 --> 00:40:22,560 Nii see on, mida me tahame teha. 759 00:40:22,560 --> 00:40:24,545 Me tahame, et hoida lugemisel, iseloomu poolt iseloomu, kuni saame 760 00:40:24,545 --> 00:40:25,080 Faili lõpus. 761 00:40:25,080 --> 00:40:25,375 >> Õpilane 20: Jah. 762 00:40:25,375 --> 00:40:25,860 Leia - 763 00:40:25,860 --> 00:40:28,540 Mis lõpuks või stop märk lõpus tekstifaili. 764 00:40:28,540 --> 00:40:28,620 >> JASON Hirschhorn: OK. 765 00:40:28,620 --> 00:40:30,140 Nii et kui me saame faili lõppu - Kuidas me teame, et me oleme saavutanud 766 00:40:30,140 --> 00:40:33,200 faili lõppu? 767 00:40:33,200 --> 00:40:34,710 Kui ma helistan - 768 00:40:34,710 --> 00:40:35,910 niiet astuge tagasi. 769 00:40:35,910 --> 00:40:37,550 Mis on funktsioon? 770 00:40:37,550 --> 00:40:39,360 Lähme seda joont siin. 771 00:40:39,360 --> 00:40:40,630 Loe lähtefaili. 772 00:40:40,630 --> 00:40:41,880 Kes saab mulle, et rida koodi? 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 Mis siis, kui ma tahan lugeda, väga Konkreetsemalt Ühebaidiline? 778 00:40:52,240 --> 00:40:55,012 779 00:40:55,012 --> 00:40:56,860 >> STUDENT 21: Ma ei tea. 780 00:40:56,860 --> 00:40:57,110 >> JASON Hirschhorn: OK. 781 00:40:57,110 --> 00:40:59,380 Isegi lihtsam kui fscanf - mis on - 782 00:40:59,380 --> 00:41:01,890 Ma tahan lugeda lähtefaili? 783 00:41:01,890 --> 00:41:03,720 Loe allikast faili. 784 00:41:03,720 --> 00:41:04,850 Mis on funktsioon - jah. 785 00:41:04,850 --> 00:41:05,380 >> STUDENT 22: See on fread? 786 00:41:05,380 --> 00:41:06,070 >> JASON Hirschhorn: Fread. 787 00:41:06,070 --> 00:41:07,550 Ma arvan, et lähme jääda et üks nüüd. 788 00:41:07,550 --> 00:41:10,380 789 00:41:10,380 --> 00:41:13,650 Millist argumendid ei fread võtma? 790 00:41:13,650 --> 00:41:17,410 >> STUDENT 22: Ilmselt failitüübi ja siis asukohta failis? 791 00:41:17,410 --> 00:41:19,550 >> JASON Hirschhorn: Mida ma kirjuta siia aru saada, mis tüüpi argumendid 792 00:41:19,550 --> 00:41:20,950 fread võtab? 793 00:41:20,950 --> 00:41:23,710 >> MITU Õpilased: Man fread. 794 00:41:23,710 --> 00:41:24,740 >> JASON Hirschhorn: Man fread ja fwrite. 795 00:41:24,740 --> 00:41:25,980 Paistab, et nad hängida koos. 796 00:41:25,980 --> 00:41:29,589 Nii fread võtab mitu argumendid? 797 00:41:29,589 --> 00:41:30,920 >> STUDENT 23: neli. 798 00:41:30,920 --> 00:41:32,690 >> JASON Hirschhorn: See võtab neli argumenti. 799 00:41:32,690 --> 00:41:41,100 See võtab pointer, suurus, ja et asi, mis on imelik, ja mõned faili. 800 00:41:41,100 --> 00:41:42,000 OK? 801 00:41:42,000 --> 00:41:43,990 Loeme sellest siin. 802 00:41:43,990 --> 00:41:49,370 "Funktsioon fread loeb n memb elementide andmeid iga suuruse baiti 803 00:41:49,370 --> 00:41:53,840 pikk, oja poolt esile tõstetud oja, säilitamise kohas 804 00:41:53,840 --> 00:41:56,170 antud kursor. " 805 00:41:56,170 --> 00:41:57,960 >> Seega neli argumenti. 806 00:41:57,960 --> 00:42:04,510 Miks ma ei kopeeri seda, ja kleepige see siinsamas. 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 Kes saab alustada täites Nende argumendid on minu jaoks? 810 00:42:13,673 --> 00:42:15,840 Avi. 811 00:42:15,840 --> 00:42:17,720 >> AVI: Võta tühine. 812 00:42:17,720 --> 00:42:20,530 Pane lihtsalt src. 813 00:42:20,530 --> 00:42:23,142 Võtke pointer ja täht. 814 00:42:23,142 --> 00:42:26,102 Pane src. 815 00:42:26,102 --> 00:42:27,050 Siis - 816 00:42:27,050 --> 00:42:28,500 >> JASON Hirschhorn: Ma lähen üles lõpetama sa seal, sest see on vale. 817 00:42:28,500 --> 00:42:32,590 818 00:42:32,590 --> 00:42:34,710 Sul on õigus, mille src, kuid kus peaks src minna? 819 00:42:34,710 --> 00:42:35,960 >> [Astudes VOICES] 820 00:42:35,960 --> 00:42:38,976 821 00:42:38,976 --> 00:42:41,610 >> JASON Hirschhorn: see peaks mine siia. 822 00:42:41,610 --> 00:42:43,790 See src - meie src on tüüp. 823 00:42:43,790 --> 00:42:44,610 Vaatame siin. 824 00:42:44,610 --> 00:42:49,610 See küsib tüüpi FILE * oleme tegelikult tavaliselt näen neid niimoodi. 825 00:42:49,610 --> 00:42:57,630 Nii et see küsib argument kirjuta FAIL * nn oja, mis on src. 826 00:42:57,630 --> 00:42:58,480 OK? 827 00:42:58,480 --> 00:43:00,410 >> Mis suurus asju tegema tahame lugeda? 828 00:43:00,410 --> 00:43:03,340 Ma andsin sulle selle probleemi kirjeldus. 829 00:43:03,340 --> 00:43:04,370 >> STUDENT 24: üks bait korraga. 830 00:43:04,370 --> 00:43:05,340 >> JASON Hirschhorn: üks bait. 831 00:43:05,340 --> 00:43:08,205 Kui suur on bait? 832 00:43:08,205 --> 00:43:11,642 Selle suurus on baitides, mis siis ma saan panna sinna? 833 00:43:11,642 --> 00:43:12,910 >> STUDENT 25: One. 834 00:43:12,910 --> 00:43:14,730 >> JASON Hirschhorn: One. 835 00:43:14,730 --> 00:43:17,020 Õige. 836 00:43:17,020 --> 00:43:19,940 Selle suurus on ühiku bait, nii 1 on 1 bait. 837 00:43:19,940 --> 00:43:22,284 Kui palju ma tahan lugeda korraga. 838 00:43:22,284 --> 00:43:23,520 >> STUDENT 26: Üks? 839 00:43:23,520 --> 00:43:24,270 >> JASON Hirschhorn: Üks asi. 840 00:43:24,270 --> 00:43:28,540 Ma tahan lugeda üks asi suurus 1 ühe hammustada korraga. 841 00:43:28,540 --> 00:43:32,110 Ja kui ma seda teen, kui ma seda lugeda? 842 00:43:32,110 --> 00:43:35,050 843 00:43:35,050 --> 00:43:36,510 >> STUDENT 27: Lend? 844 00:43:36,510 --> 00:43:39,270 >> JASON Hirschhorn: Nii et ma ei saa panna see otse sihtkohta. 845 00:43:39,270 --> 00:43:40,800 >> STUDENT 28: Te panete see kolmas osuti? 846 00:43:40,800 --> 00:43:41,780 >> STUDENT 27: sihtkohta. 847 00:43:41,780 --> 00:43:42,270 >> JASON Hirschhorn: OK. 848 00:43:42,270 --> 00:43:42,630 Jah. 849 00:43:42,630 --> 00:43:46,820 >> STUDENT 29: Võite kuulutada midagi toimida ajutise ladustamise varem. 850 00:43:46,820 --> 00:43:47,350 >> JASON Hirschhorn: OK. 851 00:43:47,350 --> 00:43:50,080 Anna see siia. 852 00:43:50,080 --> 00:43:53,930 >> STUDENT 29: Teine fail pointer, äkki? 853 00:43:53,930 --> 00:43:54,220 >> JASON Hirschhorn: OK. 854 00:43:54,220 --> 00:43:55,585 Nii et see on tühine star - 855 00:43:55,585 --> 00:43:57,750 see tüüp void täht, nii et see ei olema file pointer. 856 00:43:57,750 --> 00:44:02,520 Ja kui ma loen ühe baidi, kus oleks hea koht 857 00:44:02,520 --> 00:44:03,850 salvestada ühe baidi? 858 00:44:03,850 --> 00:44:04,660 >> STUDENT 29: massiivi? 859 00:44:04,660 --> 00:44:05,770 >> JASON Hirschhorn: massiiv. 860 00:44:05,770 --> 00:44:07,730 OK. 861 00:44:07,730 --> 00:44:14,040 Ja mida on veel midagi, mis on lihtsalt Suurus üks bait? 862 00:44:14,040 --> 00:44:16,980 863 00:44:16,980 --> 00:44:18,060 >> STUDENT 30: char *? 864 00:44:18,060 --> 00:44:18,530 >> STUDENT 29: Jah. 865 00:44:18,530 --> 00:44:19,880 >> JASON Hirschhorn: char * ei ole üks bait. 866 00:44:19,880 --> 00:44:20,440 >> STUDENT 29: char. 867 00:44:20,440 --> 00:44:21,810 >> JASON Hirschhorn: char on üks bait. 868 00:44:21,810 --> 00:44:22,920 Eks ole? 869 00:44:22,920 --> 00:44:26,740 Niisiis olgem nimetame seda puhvrit on geneeriline nime kasutatakse neid asju salvestada 870 00:44:26,740 --> 00:44:27,910 Millegi ajutiselt. 871 00:44:27,910 --> 00:44:30,880 Nii et ma luua puhver. 872 00:44:30,880 --> 00:44:31,150 Eks ole? 873 00:44:31,150 --> 00:44:32,990 Aga see ei võta void *. 874 00:44:32,990 --> 00:44:38,660 Nii et äkki teil on õigus, et see tuleks puhvris suurus 0. 875 00:44:38,660 --> 00:44:41,070 Nii ta hoiab üks - 876 00:44:41,070 --> 00:44:41,280 õige. 877 00:44:41,280 --> 00:44:43,560 >> Sest see siin - char puhver on märk, kuid 878 00:44:43,560 --> 00:44:45,110 see võtab void * - 879 00:44:45,110 --> 00:44:45,870 pointer. 880 00:44:45,870 --> 00:44:50,640 Nii et ma võiks seda teha ja nüüd puhver on osuti. 881 00:44:50,640 --> 00:44:53,214 Mida muud ma teha sain? 882 00:44:53,214 --> 00:44:55,775 >> STUDENT 31: Pane täht kõrval märk. 883 00:44:55,775 --> 00:44:58,380 >> JASON Hirschhorn: suutsin Selle on loonud char *. 884 00:44:58,380 --> 00:45:00,216 OK. 885 00:45:00,216 --> 00:45:03,131 Mis on teine ​​asi, mida ma võiks teha? 886 00:45:03,131 --> 00:45:04,050 Või lähme see. 887 00:45:04,050 --> 00:45:05,740 Char * puhver, mis siis ma panen siia? 888 00:45:05,740 --> 00:45:08,290 889 00:45:08,290 --> 00:45:09,310 >> STUDENT 31: puhver. 890 00:45:09,310 --> 00:45:10,560 >> JASON Hirschhorn: puhver. 891 00:45:10,560 --> 00:45:12,640 892 00:45:12,640 --> 00:45:14,500 Puhver on viit char. 893 00:45:14,500 --> 00:45:19,480 Ja selles kohas, me paneme üks bait, mida me lugenud. 894 00:45:19,480 --> 00:45:19,980 Jah. 895 00:45:19,980 --> 00:45:20,700 Avi. 896 00:45:20,700 --> 00:45:21,230 >> AVI: Lihtsalt kiire küsimus. 897 00:45:21,230 --> 00:45:24,440 Kas soovite malloc puhver? 898 00:45:24,440 --> 00:45:25,930 >> JASON Hirschhorn: Kes saab Et sellele küsimusele vastata? 899 00:45:25,930 --> 00:45:30,210 >> STUDENT 32: Noh, see ei ole tegelikult käsk midagi kohe, nii et - 900 00:45:30,210 --> 00:45:32,610 >> JASON Hirschhorn: Aga kas tahame malloc see? 901 00:45:32,610 --> 00:45:35,600 >> STUDENT 32: Kui sa olid seda teha, et Muide, ma arvan, et jah, sest sa pead 902 00:45:35,600 --> 00:45:36,990 Mõnes kohas, et seda osutada. 903 00:45:36,990 --> 00:45:38,350 >> JASON Hirschhorn: Kas me pea malloc see? 904 00:45:38,350 --> 00:45:40,580 >> STUDENT 33: Kui sa lähed kasutada väljaspool loop. 905 00:45:40,580 --> 00:45:42,524 >> JASON Hirschhorn: Kas me kasutada väljaspool loop? 906 00:45:42,524 --> 00:45:44,392 >> STUDENT 34: Jah. 907 00:45:44,392 --> 00:45:44,860 >> STUDENT 35: Oota. 908 00:45:44,860 --> 00:45:46,980 Kas me tahame, et kuulutada aastal silmuse peale? 909 00:45:46,980 --> 00:45:50,100 >> JASON Hirschhorn: Nii et ma arvan, et meil on mõned pseudo samas silmus siin, et me oleme 910 00:45:50,100 --> 00:45:51,950 püüab selgitada, et me ei ole õppinud veel. 911 00:45:51,950 --> 00:45:54,710 912 00:45:54,710 --> 00:45:56,010 Meil ei ole vaja malloc ta. 913 00:45:56,010 --> 00:45:59,310 Me tegutsevad peamine, see läheb Kasutatavad sees silmus. 914 00:45:59,310 --> 00:46:00,540 See ei pea eksisteerima väljaspool seda. 915 00:46:00,540 --> 00:46:02,340 >> Seega võib kohalik muutuja. 916 00:46:02,340 --> 00:46:03,925 Sul on kursor kohaliku muutuja. 917 00:46:03,925 --> 00:46:07,984 918 00:46:07,984 --> 00:46:09,590 >> STUDENT 36: Aga see ei ole osutades midagi. 919 00:46:09,590 --> 00:46:11,540 >> JASON Hirschhorn: Ei, see ei ole algväärtustatud midagi. 920 00:46:11,540 --> 00:46:12,790 Aga me ei kavatse seda kasutada ka. 921 00:46:12,790 --> 00:46:15,300 Me läheme sinna midagi panema see esimene kord, kui me seda kasutada. 922 00:46:15,300 --> 00:46:16,580 Nii et tundub OK. 923 00:46:16,580 --> 00:46:17,780 Nii et me ei pea malloc siin. 924 00:46:17,780 --> 00:46:19,360 Ja ma arvan, et see on OK, kui see on. 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 Meil on fread line. 928 00:46:27,190 --> 00:46:28,490 Teeme järgmise rea. 929 00:46:28,490 --> 00:46:32,984 >> Kui me tahame kirjutada faili, mis on hea funktsiooni kasutada seda teha? 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 on üks. 933 00:46:36,010 --> 00:46:37,260 Mida veel? 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 Ja meie eesmärkidel fwrite, nägime siin on 937 00:46:41,250 --> 00:46:42,500 ilmselt parem valik. 938 00:46:42,500 --> 00:46:51,970 939 00:46:51,970 --> 00:46:53,950 Kulub neli argumendid samuti. 940 00:46:53,950 --> 00:46:57,570 Nishant, saate anda minu argumendid? 941 00:46:57,570 --> 00:47:00,570 >> Nishant: esimene toimub olla lihtsalt puhver. 942 00:47:00,570 --> 00:47:02,210 >> JASON Hirschhorn: OK. 943 00:47:02,210 --> 00:47:06,752 >> Nishant: teise inimese lihtsalt saab olema 1. 944 00:47:06,752 --> 00:47:09,510 Kolmandaks üks saab olema 1. 945 00:47:09,510 --> 00:47:11,470 Ja neljas saab olema dst. 946 00:47:11,470 --> 00:47:18,010 947 00:47:18,010 --> 00:47:19,550 >> JASON Hirschhorn: Kas kellelgi on küsimusi, et rida? 948 00:47:19,550 --> 00:47:28,370 949 00:47:28,370 --> 00:47:29,130 See näeb hea välja. 950 00:47:29,130 --> 00:47:29,590 OK. 951 00:47:29,590 --> 00:47:34,250 Nüüd tundub, et üks asi, mida me oleme puudub - tegelikult kirjutame 952 00:47:34,250 --> 00:47:35,090 see viimane rida. 953 00:47:35,090 --> 00:47:36,300 Sulgege faile. 954 00:47:36,300 --> 00:47:38,880 Kes võib lõpetada meid kirjalikult need kaks viimast rida? 955 00:47:38,880 --> 00:47:39,120 Jah. 956 00:47:39,120 --> 00:47:39,850 Vabandust, mis su nimi on? 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: kirjutamisel src ja siis fclose sihtkohta. 960 00:47:47,560 --> 00:47:52,430 >> JASON Hirschhorn: kirjutamisel, avatud paren, src lähedal paren, semikoolon. 961 00:47:52,430 --> 00:47:53,680 Ja kirjutamisel - 962 00:47:53,680 --> 00:47:57,560 963 00:47:57,560 --> 00:47:58,090 jah? 964 00:47:58,090 --> 00:48:01,710 >> LUCY: Avatud sulgudes dst ja siis semikooloniga. 965 00:48:01,710 --> 00:48:02,520 >> JASON Hirschhorn: Suur. 966 00:48:02,520 --> 00:48:04,338 Ja mida ma peaksin sisaldama lõpus? 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 Kas ma pean? 970 00:48:06,820 --> 00:48:10,560 971 00:48:10,560 --> 00:48:12,590 Lihtsalt küsimus. 972 00:48:12,590 --> 00:48:14,957 Kas meil on lisada return 0? 973 00:48:14,957 --> 00:48:16,240 >> MITU Õpilased: Ei. 974 00:48:16,240 --> 00:48:16,430 >> JASON Hirschhorn: Ei 975 00:48:16,430 --> 00:48:18,090 Peamised teeb seda automaatselt kui sa saad lõpuks. 976 00:48:18,090 --> 00:48:20,580 Aga ma arvan, et see on tore sisaldavad seda selgesõnaliselt. 977 00:48:20,580 --> 00:48:23,860 Eriti siis, kui me naasmist muu asjad kogu programmis. 978 00:48:23,860 --> 00:48:24,810 OK. 979 00:48:24,810 --> 00:48:26,230 See on see, et meil puuduvad - 980 00:48:26,230 --> 00:48:28,520 Pidevalt mida? 981 00:48:28,520 --> 00:48:31,630 Kes ei mõtle mõned - 982 00:48:31,630 --> 00:48:35,240 on mõnes mõttes mida asjad võiks sinna minna? 983 00:48:35,240 --> 00:48:37,350 Isegi kui see on ainult mõned pseudokoodi nagu keel? 984 00:48:37,350 --> 00:48:41,330 >> Mida me tegelikult oleme - mida me tahame minna kuni? 985 00:48:41,330 --> 00:48:41,980 Jah, Lucy. 986 00:48:41,980 --> 00:48:43,240 >> LUCY: faili lõppu. 987 00:48:43,240 --> 00:48:44,990 >> JASON Hirschhorn: faili lõppu. 988 00:48:44,990 --> 00:48:49,280 Niisiis, mida sa mõtled faili lõppu? 989 00:48:49,280 --> 00:48:50,955 >> LUCY: Kui te jõuate faili lõppu, lõpetage. 990 00:48:50,955 --> 00:48:51,240 >> JASON Hirschhorn: OK. 991 00:48:51,240 --> 00:48:53,460 Nii et kui me jõuame faili lõppu. 992 00:48:53,460 --> 00:48:56,893 Kuidas me teame, kui me oleme saavutanud Faili lõpus? 993 00:48:56,893 --> 00:48:59,900 >> STUDENT 40: Ma arvan, et puhver seatakse NULL. 994 00:48:59,900 --> 00:49:01,885 >> STUDENT 41: Puhver kuulutatud sees loop. 995 00:49:01,885 --> 00:49:03,670 >> JASON Hirschhorn: Nii et sa arvad puhver seatakse NULL. 996 00:49:03,670 --> 00:49:05,850 Miks puhver olema seatud null? 997 00:49:05,850 --> 00:49:10,420 >> STUDENT 40: Sest kui sa fread, sa üritad panna 998 00:49:10,420 --> 00:49:13,528 midagi arvesse puhver. 999 00:49:13,528 --> 00:49:13,980 >> JASON Hirschhorn: OK. 1000 00:49:13,980 --> 00:49:15,550 Nii et sa mõtled fread - 1001 00:49:15,550 --> 00:49:19,000 kui me oleme jõudnud fail, mida fread teha kavatsed? 1002 00:49:19,000 --> 00:49:21,230 Ma arvan, et see küsimus me peame välja mõtlema. 1003 00:49:21,230 --> 00:49:21,960 Mis fread teha? 1004 00:49:21,960 --> 00:49:25,640 See panna NULL puhvris või see midagi muud? 1005 00:49:25,640 --> 00:49:27,510 Kuidas me saame aru, mida ta teeb? 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 Vaatame siin. 1009 00:49:32,280 --> 00:49:34,000 Tagastatav väärtus. 1010 00:49:34,000 --> 00:49:39,620 Edu, fread ja fwrite tagasi arvu punkte lugeda või kirjalik. 1011 00:49:39,620 --> 00:49:43,700 See number on võrdne arv baite kanda ainult siis, kui suurus on 1. 1012 00:49:43,700 --> 00:49:47,780 Kui ilmneb viga, või lõpus fail on saavutatud, tagastatav väärtus on 1013 00:49:47,780 --> 00:49:51,490 lühike kirje arv või 0. 1014 00:49:51,490 --> 00:49:57,860 >> Nii meie eesmärkidel, kui fread jõuab Faili lõpus, ja loeb 1015 00:49:57,860 --> 00:50:02,100 faili lõppu, seal on midagi jäänud lugeda, mida läheb tagasi? 1016 00:50:02,100 --> 00:50:03,290 >> STUDENT 43: Zero? 1017 00:50:03,290 --> 00:50:04,540 >> JASON Hirschhorn: Mis on? 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 Ta läheb tagasi nulli. 1021 00:50:06,940 --> 00:50:09,360 1022 00:50:09,360 --> 00:50:13,010 Seega me teame, et fread, kui oleme jõudnud faili lõppu, läheb 1023 00:50:13,010 --> 00:50:13,690 tagasi nulli. 1024 00:50:13,690 --> 00:50:17,460 Kuidas me saame kasutada, et meie eelis? 1025 00:50:17,460 --> 00:50:21,733 >> AVI: Võite kuulutada muutuja väljaspool loop nimetatakse tuleks. 1026 00:50:21,733 --> 00:50:27,040 Kui kontroll on võrdne - 1027 00:50:27,040 --> 00:50:28,190 nüüd - üks. 1028 00:50:28,190 --> 00:50:28,920 >> JASON Hirschhorn: OK. 1029 00:50:28,920 --> 00:50:38,050 >> AVI: Ja siis võite panna IF avalduse peale fread öelda kui 1030 00:50:38,050 --> 00:50:42,600 fread võrdub nulliga - 1031 00:50:42,600 --> 00:50:43,850 no. 1032 00:50:43,850 --> 00:50:46,002 1033 00:50:46,002 --> 00:50:47,252 >> JASON Hirschhorn: Kes aitab Avi välja? 1034 00:50:47,252 --> 00:50:49,690 1035 00:50:49,690 --> 00:50:52,410 >> AVI Mis on väärtus tagastatud fread? 1036 00:50:52,410 --> 00:50:54,060 >> JASON Hirschhorn: Me lihtsalt läksin üle selle. 1037 00:50:54,060 --> 00:50:55,450 >> AVI: Kuidas esindada? 1038 00:50:55,450 --> 00:50:57,190 >> JASON Hirschhorn: Nii see läheb - olgem vaata siin - see läheb 1039 00:50:57,190 --> 00:50:59,340 size_t, mis on sisuliselt täisarv. 1040 00:50:59,340 --> 00:51:02,240 1041 00:51:02,240 --> 00:51:03,410 Nii see läheb täisarv. 1042 00:51:03,410 --> 00:51:05,160 Ja meie puhul, siis tagasi 1 või 0 - 1043 00:51:05,160 --> 00:51:08,760 1, kui lugeda üht - üks bait, ja 0, kui oleme jõudnud. 1044 00:51:08,760 --> 00:51:13,560 1045 00:51:13,560 --> 00:51:16,450 Nii et kui fread - 1046 00:51:16,450 --> 00:51:16,855 jah? 1047 00:51:16,855 --> 00:51:20,330 >> STUDENT 45: Kas sa ei pane täis fread (puhver, 1, 1, src) viiakse 1048 00:51:20,330 --> 00:51:21,660 samas loop? 1049 00:51:21,660 --> 00:51:26,510 >> JASON Hirschhorn: Nii pakute Seda tehes võetakse seal? 1050 00:51:26,510 --> 00:51:27,600 >> [Astudes VOICES] 1051 00:51:27,600 --> 00:51:29,520 >> JASON Hirschhorn: Oota. 1052 00:51:29,520 --> 00:51:30,885 Nii et me vabastades selle. 1053 00:51:30,885 --> 00:51:33,300 Nii et te ettepaneku panna fread arvesse seal? 1054 00:51:33,300 --> 00:51:35,457 Mida me peaksime ka liikuma kui sa tahad seda teha? 1055 00:51:35,457 --> 00:51:36,740 >> STUDENT 45: puhver väljaspool. 1056 00:51:36,740 --> 00:51:38,110 >> JASON Hirschhorn: peaksime liigutada ka see siin. 1057 00:51:38,110 --> 00:51:41,700 >> STUDENT 45: Aga kas see pidevalt edasi liikuda? 1058 00:51:41,700 --> 00:51:42,950 >> [Astudes VOICES] 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 Nii et see on see, mida Okshar ettepanek. 1062 00:51:50,570 --> 00:51:51,930 Loome meie puhver. 1063 00:51:51,930 --> 00:51:57,020 Me AJAL fread, siis me fwrite. 1064 00:51:57,020 --> 00:51:59,760 Mõtted on? 1065 00:51:59,760 --> 00:52:04,050 >> STUDENT 46: Minu ainus küsimus on, oleks see tegelikult käsu fread? 1066 00:52:04,050 --> 00:52:06,175 >> JASON Hirschhorn: Hea küsimus. 1067 00:52:06,175 --> 00:52:11,050 Kui sa oled hakanud funktsioon kõne sees tingimus, kas see 1068 00:52:11,050 --> 00:52:12,300 funktsioon kõne täidab? 1069 00:52:12,300 --> 00:52:15,760 1070 00:52:15,760 --> 00:52:17,770 Me oleme näinud näiteid enne. 1071 00:52:17,770 --> 00:52:24,900 1072 00:52:24,900 --> 00:52:25,660 Eks ole? 1073 00:52:25,660 --> 00:52:26,125 >> STUDENT 46: OK. 1074 00:52:26,125 --> 00:52:26,590 Jah. 1075 00:52:26,590 --> 00:52:30,140 Nii, et see täide. 1076 00:52:30,140 --> 00:52:31,790 >> JASON Hirschhorn: Oleme näinud asju niimoodi enne, kui meil on 1077 00:52:31,790 --> 00:52:33,550 funktsioon kõne sees seisukorras. 1078 00:52:33,550 --> 00:52:35,540 Kas see funktsioon kõne täidab? 1079 00:52:35,540 --> 00:52:36,350 Jah. 1080 00:52:36,350 --> 00:52:37,410 Nii et vastus on jah. 1081 00:52:37,410 --> 00:52:41,010 See funktsioon kõne täidab. 1082 00:52:41,010 --> 00:52:42,418 Aga jälle, on see, mida me tahame? 1083 00:52:42,418 --> 00:52:49,250 1084 00:52:49,250 --> 00:52:52,204 >> Mis on üks viis, kuidas me saaks aru välja, kas see on see, mida me tahame? 1085 00:52:52,204 --> 00:52:53,470 >> MITU Õpilased: Käivita see? 1086 00:52:53,470 --> 00:52:54,460 >> JASON Hirschhorn: Me võiks käivitada. 1087 00:52:54,460 --> 00:52:57,500 Aga enne kui me seda teeme, me võiksime ka põhjust selle kaudu. 1088 00:52:57,500 --> 00:52:57,920 Kui - 1089 00:52:57,920 --> 00:53:01,920 et meil on üks bait meie fail, me jõuame siin 1090 00:53:01,920 --> 00:53:02,660 me jõuame selle koodi. 1091 00:53:02,660 --> 00:53:03,620 See kestab. 1092 00:53:03,620 --> 00:53:07,780 fread naaseb üks bait ning pange see puhver. 1093 00:53:07,780 --> 00:53:11,290 Ja see, kui hinnatakse, 1, õigus, kui ta tagastab 1. 1094 00:53:11,290 --> 00:53:12,640 >> Niisiis, kui 1. 1095 00:53:12,640 --> 00:53:15,325 Kas see tähendab, kood sees samas silmus täidab? 1096 00:53:15,325 --> 00:53:15,453 >> STUDENT 47: Jah. 1097 00:53:15,453 --> 00:53:16,040 See on tõsi. 1098 00:53:16,040 --> 00:53:16,290 >> JASON Hirschhorn: Jah. 1099 00:53:16,290 --> 00:53:17,490 1 on õige. 1100 00:53:17,490 --> 00:53:18,240 See ei ole 0. 1101 00:53:18,240 --> 00:53:20,360 Nii koodi sees siin täidab. 1102 00:53:20,360 --> 00:53:22,300 Nii me kirjutame. 1103 00:53:22,300 --> 00:53:25,340 Kolime tagasi selle line taas. 1104 00:53:25,340 --> 00:53:26,850 Nüüd on meil - 1105 00:53:26,850 --> 00:53:28,550 me aasta lõpus meie faili. 1106 00:53:28,550 --> 00:53:30,980 Loeme lõpust meie faili sest meil oli ainult üks bait ta. 1107 00:53:30,980 --> 00:53:34,270 >> Fread tagastab 0, kauplused midagi puhvris. 1108 00:53:34,270 --> 00:53:35,890 Ma ausalt öeldes ei tea, mida see salvestab puhvris. 1109 00:53:35,890 --> 00:53:38,380 Võiksime tõenäoliselt otsida et näha, mida ta teeb. 1110 00:53:38,380 --> 00:53:40,130 Et ma ausalt ei tea. 1111 00:53:40,130 --> 00:53:43,090 Me ei tea, kes hoolib, mida see salvestab puhvris? 1112 00:53:43,090 --> 00:53:44,010 Aga see tagasi 0. 1113 00:53:44,010 --> 00:53:45,440 Ja samas 0 täitma? 1114 00:53:45,440 --> 00:53:49,950 1115 00:53:49,950 --> 00:53:51,180 >> Pidevalt 0 ei käivitunud. 1116 00:53:51,180 --> 00:53:54,030 Siis me liigume siin. 1117 00:53:54,030 --> 00:53:58,870 Nii lähme käte kui on kood, me ei jookseks ega kui me 1118 00:53:58,870 --> 00:54:00,140 tuleks teha muudatusi esimene. 1119 00:54:00,140 --> 00:54:02,180 Nii et kui te arvate - teil hääletada. 1120 00:54:02,180 --> 00:54:06,885 Kui sa arvad, et me peaksime selle käivitada koodi kui on, siis tõstke käsi. 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 Seal on üks - 1124 00:54:14,315 --> 00:54:17,260 Kas teil on küsimus, mure? 1125 00:54:17,260 --> 00:54:18,080 Jah. 1126 00:54:18,080 --> 00:54:21,240 >> STUDENT 48: Pärast astume puhver väljaspool loop, me 1127 00:54:21,240 --> 00:54:22,670 pea malloc see? 1128 00:54:22,670 --> 00:54:23,310 >> JASON Hirschhorn: Hea küsimus. 1129 00:54:23,310 --> 00:54:26,670 Pärast astume puhver väljaspool loop, me peame malloc see? 1130 00:54:26,670 --> 00:54:28,400 See on ulatus küsimus. 1131 00:54:28,400 --> 00:54:32,130 Kui me initsialiseerida puhver väljaspool see silmus, kas see on olemas 1132 00:54:32,130 --> 00:54:33,534 sees loop? 1133 00:54:33,534 --> 00:54:35,230 >> MITU Õpilased: Jah. 1134 00:54:35,230 --> 00:54:35,580 >> JASON Hirschhorn: Jah. 1135 00:54:35,580 --> 00:54:40,100 Selle kohaldamisala hõlmab sees loop, ja tõesti, midagi alla selle sees 1136 00:54:40,100 --> 00:54:42,460 Selle koodi, sh asjad siin sees. 1137 00:54:42,460 --> 00:54:43,930 Nii et me ei pea malloc ta. 1138 00:54:43,930 --> 00:54:47,766 See on kohaliku muutuja ja selle ulatus ikka on silmus. 1139 00:54:47,766 --> 00:54:49,540 >> STUDENT 49: Kas meil on vaja vabastada see? 1140 00:54:49,540 --> 00:54:51,770 >> JASON Hirschhorn: Kas me pea tasuta puhver? 1141 00:54:51,770 --> 00:54:53,860 >> STUDENT 49: Jah, kui me ei malloc. 1142 00:54:53,860 --> 00:54:55,750 >> JASON Hirschhorn: Kas me pea tasuta puhver? 1143 00:54:55,750 --> 00:54:57,160 Me ei tee seda. 1144 00:54:57,160 --> 00:55:01,280 Jällegi on kohaliku muutuja nii et me ei vaja vabastada ta. 1145 00:55:01,280 --> 00:55:02,170 OK. 1146 00:55:02,170 --> 00:55:03,480 Vaatame, mis juhtub. 1147 00:55:03,480 --> 00:55:17,290 1148 00:55:17,290 --> 00:55:18,220 Nii et see on uninitialized. 1149 00:55:18,220 --> 00:55:20,830 See oli see, mis midagi, Marcus pakutud varem. 1150 00:55:20,830 --> 00:55:25,340 Nii et meil on see viga, muutuja puhver on Uninitialized kasutatuna siin. 1151 00:55:25,340 --> 00:55:26,590 >> Kuidas me saame seda parandada? 1152 00:55:26,590 --> 00:55:29,460 1153 00:55:29,460 --> 00:55:30,960 >> STUDENT 50: malloc see? 1154 00:55:30,960 --> 00:55:31,770 >> STUDENT 51: Vastus NULL? 1155 00:55:31,770 --> 00:55:33,000 >> STUDENT 52: Ütle puhver võrdub 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 Näeb hea välja. 1159 00:55:40,770 --> 00:55:42,410 Meil on see nüüd. 1160 00:55:42,410 --> 00:55:45,630 Loome midagi proovida kopeerimist. 1161 00:55:45,630 --> 00:56:08,990 1162 00:56:08,990 --> 00:56:10,490 Nii et meil on meie tekstifaili. 1163 00:56:10,490 --> 00:56:11,740 Kuidas me saame teha selle programmiga? 1164 00:56:11,740 --> 00:56:14,140 1165 00:56:14,140 --> 00:56:15,472 Jah. 1166 00:56:15,472 --> 00:56:22,230 >> STUDENT 53: Seda saab teha dot kaldkriips cp, test.txt. 1167 00:56:22,230 --> 00:56:25,140 Ja siis saate nimi teise faili mis see salvestab arvesse. 1168 00:56:25,140 --> 00:56:25,510 >> JASON Hirschhorn: OK. 1169 00:56:25,510 --> 00:56:27,380 Me nimetame seda 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 süü. 1173 00:56:34,320 --> 00:56:35,570 Mõtted seg süü? 1174 00:56:35,570 --> 00:56:40,900 1175 00:56:40,900 --> 00:56:41,390 See on suurepärane. 1176 00:56:41,390 --> 00:56:45,040 Kuidas me saame teada, kus seg süüd? 1177 00:56:45,040 --> 00:56:45,680 Mida? 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 Meil kestab gdb kirjutades gdb dot kaldkriipsuga nimi meie programm. 1182 00:56:55,300 --> 00:56:57,020 No käsureaargumentidena seal. 1183 00:56:57,020 --> 00:56:59,570 Me seada Katkestuspunkti peamine. 1184 00:56:59,570 --> 00:57:02,190 Kui ma tahan alustada gdb, mida ma pean tegema? 1185 00:57:02,190 --> 00:57:02,730 >> STUDENT 55: R. 1186 00:57:02,730 --> 00:57:08,910 >> JASON Hirschhorn: R. Ja mis siis? 1187 00:57:08,910 --> 00:57:09,400 >> STUDENT 55: argumendid? 1188 00:57:09,400 --> 00:57:10,650 >> JASON Hirschhorn: Siis käsurea argumente. 1189 00:57:10,650 --> 00:57:15,890 1190 00:57:15,890 --> 00:57:17,120 Vaatame. 1191 00:57:17,120 --> 00:57:19,090 N on lihtsalt viid rida-realt. 1192 00:57:19,090 --> 00:57:21,450 Ma lähen kuni Ma saan seg süü. 1193 00:57:21,450 --> 00:57:22,700 Seal on mu seg süü. 1194 00:57:22,700 --> 00:57:24,960 1195 00:57:24,960 --> 00:57:27,875 Tundub fread põhjustatud minu seg süü. 1196 00:57:27,875 --> 00:57:30,570 1197 00:57:30,570 --> 00:57:32,770 Tean fread põhjustatud minu seg süü sest see oli 1198 00:57:32,770 --> 00:57:34,950 line me lihtsalt täide. 1199 00:57:34,950 --> 00:57:36,530 >> Ja ainus asi, mis oli juhtub, et joon - 1200 00:57:36,530 --> 00:57:37,520 kaks asja on juhtunud. 1201 00:57:37,520 --> 00:57:40,610 Fread läksin, ja siis me olime teeme mõned kontrollides. 1202 00:57:40,610 --> 00:57:44,820 Ma olen valmis kihla, et AJAL kontrollimine ei põhjustanud seg süü. 1203 00:57:44,820 --> 00:57:46,950 Tõenäoliselt fread oli põhjustab minu seg süü. 1204 00:57:46,950 --> 00:57:49,260 Samuti näen ma siin midagi, memcopy. 1205 00:57:49,260 --> 00:57:50,500 >> Memory koopia. 1206 00:57:50,500 --> 00:57:53,820 Sarnane liigub mälu ühest asukohast teise. 1207 00:57:53,820 --> 00:57:56,890 Sarnane midagi, mis juhtuks, aastal fread, võibolla mõned mälu 1208 00:57:56,890 --> 00:57:58,910 liigub siit siia. 1209 00:57:58,910 --> 00:58:01,740 1210 00:58:01,740 --> 00:58:03,860 Lähme läbi see uuesti. 1211 00:58:03,860 --> 00:58:06,900 Kuidas käivitada üle ja käivitage see uuesti? 1212 00:58:06,900 --> 00:58:08,092 Jah. 1213 00:58:08,092 --> 00:58:15,140 >> STUDENT 56: Kas teil on vaja panna ampersand enne puhver? 1214 00:58:15,140 --> 00:58:17,800 >> JASON Hirschhorn: Nii ampersand enne puhver annaks mulle aadress 1215 00:58:17,800 --> 00:58:22,330 puhver, mis on paalia *. 1216 00:58:22,330 --> 00:58:25,250 Olgem jookseb läbi selle veel kord. 1217 00:58:25,250 --> 00:58:28,248 Kuidas ma saan läbi veel üks kord? 1218 00:58:28,248 --> 00:58:29,210 >> STUDENT 57: Kas sa lihtsalt kirjuta uuesti avada? 1219 00:58:29,210 --> 00:58:32,050 >> JASON Hirschhorn: Lihtsalt kirjuta run uuesti. 1220 00:58:32,050 --> 00:58:33,415 Nii et me ei kavatse täidab selle rea. 1221 00:58:33,415 --> 00:58:36,250 1222 00:58:36,250 --> 00:58:39,240 Nii puhver on NULL pointer. 1223 00:58:39,240 --> 00:58:40,490 Õige? 1224 00:58:40,490 --> 00:58:45,870 1225 00:58:45,870 --> 00:58:47,060 See osutab, et - vaatame. 1226 00:58:47,060 --> 00:58:48,500 Kui oleme meie - 1227 00:58:48,500 --> 00:58:50,430 juhtida kiire pilt sellest. 1228 00:58:50,430 --> 00:58:53,500 Kas igaüks vaadata, kas Ma kirjutan siia? 1229 00:58:53,500 --> 00:59:02,890 >> Nii et stack on meil kohalik muutuv ja seda nimetatakse puhvris ja 1230 00:59:02,890 --> 00:59:08,230 see kursor char. 1231 00:59:08,230 --> 00:59:10,325 Mis aadress see char juures? 1232 00:59:10,325 --> 00:59:12,550 >> STUDENT 58: 0x0. 1233 00:59:12,550 --> 00:59:13,400 >> JASON Hirschhorn: Õigus. 1234 00:59:13,400 --> 00:59:14,200 See on, mis see on. 1235 00:59:14,200 --> 00:59:17,600 Siin sees puhvris hoitakse 0x0. 1236 00:59:17,600 --> 00:59:20,480 See, mis meil on - setup meil praegu. 1237 00:59:20,480 --> 00:59:27,540 Nii et see rida, fread, paneb midagi allikast, kus? 1238 00:59:27,540 --> 00:59:30,560 Sellesse kasti või see kast? 1239 00:59:30,560 --> 00:59:31,060 Mis kast? 1240 00:59:31,060 --> 00:59:33,290 Vasak kast või paremale kasti? 1241 00:59:33,290 --> 00:59:34,750 Seda õigust kasti. 1242 00:59:34,750 --> 00:59:38,440 >> Sellest järeldub, pointer, ja paneb selle siia. 1243 00:59:38,440 --> 00:59:42,620 Kui me püüame ja touch mälu asukoha 0, siis mis me saame? 1244 00:59:42,620 --> 00:59:45,050 Killustatust süü. 1245 00:59:45,050 --> 00:59:46,550 See viga on meil praegu. 1246 00:59:46,550 --> 00:59:46,970 Jah. 1247 00:59:46,970 --> 00:59:48,410 >> STUDENT 59: Kas sul pole panna star puhver? 1248 00:59:48,410 --> 00:59:49,180 Või ei ole? 1249 00:59:49,180 --> 00:59:50,050 Sest fread? 1250 00:59:50,050 --> 00:59:51,450 >> JASON Hirschhorn: Nii fread võtab kursor. 1251 00:59:51,450 --> 00:59:54,920 1252 00:59:54,920 --> 00:59:55,900 Nii see läheb puhvris. 1253 00:59:55,900 --> 00:59:58,980 Ja siis ma de-viide see kusagil sees fread. 1254 00:59:58,980 --> 01:00:00,700 Aga jälle, nägime, et see võtab kursor. 1255 01:00:00,700 --> 01:00:02,560 Meil ei ole vaja läbida see täht puhver. 1256 01:00:02,560 --> 01:00:05,350 See oleks kulgeb see iganes on siin. 1257 01:00:05,350 --> 01:00:07,980 Ja see oleks ilmselt meile viga sest me de-viitamine ta. 1258 01:00:07,980 --> 01:00:08,150 >> Eks ole? 1259 01:00:08,150 --> 01:00:10,690 Kui me de-viide selle pointer, kui püüame pääseda selle asukoha, 1260 01:00:10,690 --> 01:00:13,140 me saada viga - meie killustatust süü. 1261 01:00:13,140 --> 01:00:15,800 Niisiis - 1262 01:00:15,800 --> 01:00:16,690 oops. 1263 01:00:16,690 --> 01:00:19,090 Me quit välja gdb. 1264 01:00:19,090 --> 01:00:20,160 Meie rida - 1265 01:00:20,160 --> 01:00:22,990 meie probleem - on õige siin sellel liinil. 1266 01:00:22,990 --> 01:00:26,410 Ja see on probleem, sest Selle rea. 1267 01:00:26,410 --> 01:00:31,780 >> Kuidas me saame luua kast, mis on kättesaadav fread. 1268 01:00:31,780 --> 01:00:31,980 Eks ole? 1269 01:00:31,980 --> 01:00:35,190 Peame looma kast, mis on üks bait suur, suurus paalia. 1270 01:00:35,190 --> 01:00:38,590 Aga meil on vaja, et kast oleks kättesaadav Kui see funktsioon täidab. 1271 01:00:38,590 --> 01:00:39,390 Nii et kui - 1272 01:00:39,390 --> 01:00:39,640 jah. 1273 01:00:39,640 --> 01:00:40,440 Iga ideid? 1274 01:00:40,440 --> 01:00:43,615 >> STUDENT 60: Just määrake see mõni juhuslik iseloom. 1275 01:00:43,615 --> 01:00:49,150 1276 01:00:49,150 --> 01:00:51,640 Lihtsalt tee char puhvrit võrdsete iseloomu. 1277 01:00:51,640 --> 01:00:53,795 Ja siis, kui teil on puhver olemas - 1278 01:00:53,795 --> 01:00:54,110 >> JASON Hirschhorn: Oota. 1279 01:00:54,110 --> 01:00:55,110 Char puhver? 1280 01:00:55,110 --> 01:00:55,880 Seega pole star? 1281 01:00:55,880 --> 01:00:56,390 >> STUDENT 60: Jah. 1282 01:00:56,390 --> 01:00:58,560 Võta star. 1283 01:00:58,560 --> 01:01:00,690 Vastus juhusliku iseloomuga. 1284 01:01:00,690 --> 01:01:01,460 >> JASON Hirschhorn: OK. 1285 01:01:01,460 --> 01:01:02,420 Nii et anna mulle üks. 1286 01:01:02,420 --> 01:01:03,170 >> STUDENT 60: Meeldib või midagi. 1287 01:01:03,170 --> 01:01:06,160 Ja siis, kui sul on puhver seal, siis kasuta - 1288 01:01:06,160 --> 01:01:06,420 >> STUDENT 61: Star? 1289 01:01:06,420 --> 01:01:07,650 Oh ei, ampersand. 1290 01:01:07,650 --> 01:01:09,000 >> STUDENT 60: Kasutage ampersand. 1291 01:01:09,000 --> 01:01:09,470 >> JASON Hirschhorn: OK. 1292 01:01:09,470 --> 01:01:11,320 Ja kuidas on fwrite? 1293 01:01:11,320 --> 01:01:14,150 >> STUDENT 60: Kasutage ampersand uuesti. 1294 01:01:14,150 --> 01:01:14,320 >> JASON Hirschhorn: Olgu. 1295 01:01:14,320 --> 01:01:20,970 Nii et teie idee on, et me luua char ja pane midagi, ja siis 1296 01:01:20,970 --> 01:01:22,612 kirjutada, et char. 1297 01:01:22,612 --> 01:01:23,760 >> STUDENT 60: Jah. 1298 01:01:23,760 --> 01:01:25,916 >> JASON Hirschhorn: Mis inimesed arvavad? 1299 01:01:25,916 --> 01:01:27,770 >> STUDENT 62: See on keerdunud. 1300 01:01:27,770 --> 01:01:28,460 >> JASON Hirschhorn: OK. 1301 01:01:28,460 --> 01:01:29,760 Joonistame selle välja. 1302 01:01:29,760 --> 01:01:35,720 Nii et see aeg, ma juhtida seda punane korstnat siin ja siis me 1303 01:01:35,720 --> 01:01:36,410 on - 1304 01:01:36,410 --> 01:01:36,822 ooh! 1305 01:01:36,822 --> 01:01:38,060 Vabandust. 1306 01:01:38,060 --> 01:01:45,930 Nii et see aeg on meil midagi, mida nimetatakse puhver, ja see on virnas. 1307 01:01:45,930 --> 01:01:48,430 Õige? 1308 01:01:48,430 --> 01:01:51,520 Ja me kokkuhoid see esialgu. 1309 01:01:51,520 --> 01:01:53,830 >> Siis on meil kõne fread. 1310 01:01:53,830 --> 01:02:01,300 Mida fread ei ole see võtab bait alates meie faili ja paneb ta kuhugi. 1311 01:02:01,300 --> 01:02:04,570 See paneb ta iganes asi pole osutades. 1312 01:02:04,570 --> 01:02:09,130 Noh, enne kui meil oli see aadress - 1313 01:02:09,130 --> 01:02:10,250 0x0. 1314 01:02:10,250 --> 01:02:13,349 Mis nüüd aadress meil on? 1315 01:02:13,349 --> 01:02:14,650 >> STUDENT 63: Ükskõik aadress puhver. 1316 01:02:14,650 --> 01:02:15,970 >> JASON Hirschhorn: Ükskõik aadress puhver. 1317 01:02:15,970 --> 01:02:22,370 See on ilmselt saab olema midagi sellist. 1318 01:02:22,370 --> 01:02:26,950 Ilmselt läheb algavad b ja f, ja siis on veel kuus 1319 01:02:26,950 --> 01:02:27,970 kuueteistkümnendarvudega. 1320 01:02:27,970 --> 01:02:28,480 Vahet pole. 1321 01:02:28,480 --> 01:02:29,470 Mõned aadress. 1322 01:02:29,470 --> 01:02:31,410 Ja me möödaminnes, et aadress sisse 1323 01:02:31,410 --> 01:02:34,790 >> Ja me paneme oma ühe bait asi sellel aadressil. 1324 01:02:34,790 --> 01:02:38,470 Nii et me panna meie ühe bait asi sees siin. 1325 01:02:38,470 --> 01:02:40,800 Ja siis me ei kavatse kirjutada mis kunagi siia sisse. 1326 01:02:40,800 --> 01:02:43,425 1327 01:02:43,425 --> 01:02:45,380 Kas kellelgi on küsimusi kohta? 1328 01:02:45,380 --> 01:02:50,990 1329 01:02:50,990 --> 01:02:54,690 Kes arvab, et see kood töötab? 1330 01:02:54,690 --> 01:02:56,020 >> Tõsta käsi, kui te arvate see kood töötab. 1331 01:02:56,020 --> 01:02:57,270 Sa pead võtma hoiaku. 1332 01:02:57,270 --> 01:03:00,670 1333 01:03:00,670 --> 01:03:02,500 Ja kes arvab, et see kood ei tööta? 1334 01:03:02,500 --> 01:03:04,610 Tõsta käsi. 1335 01:03:04,610 --> 01:03:06,750 Kõik teised peaksid olema tõsta oma käsi. 1336 01:03:06,750 --> 01:03:07,670 OK. 1337 01:03:07,670 --> 01:03:09,390 Michael, kui sa püsti? 1338 01:03:09,390 --> 01:03:10,680 >> MICHAEL: Ma ei suuda otsustada. 1339 01:03:10,680 --> 01:03:12,070 Objekti keskel. 1340 01:03:12,070 --> 01:03:12,736 >> JASON Hirschhorn: Sa oled aasta keskel. 1341 01:03:12,736 --> 01:03:13,092 Vali üks. 1342 01:03:13,092 --> 01:03:14,400 >> MICHAEL: ma usun ja öelda, et see töötab. 1343 01:03:14,400 --> 01:03:14,660 >> JASON Hirschhorn: OK. 1344 01:03:14,660 --> 01:03:16,047 Sul on usk ja öelda, et see toimib? 1345 01:03:16,047 --> 01:03:26,490 1346 01:03:26,490 --> 01:03:27,020 Mis juhtus? 1347 01:03:27,020 --> 01:03:28,270 >> [Astudes VOICES] 1348 01:03:28,270 --> 01:03:35,170 1349 01:03:35,170 --> 01:03:35,950 >> JASON Hirschhorn: No seg süü. 1350 01:03:35,950 --> 01:03:40,320 Kuidas me saame vaadata, kui kaks asja on võrdsed? 1351 01:03:40,320 --> 01:03:42,060 Kaks failid on võrdsed. 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 Diff kontrolli erinevused kaks faili, ja kui ta naaseb 1355 01:03:51,630 --> 01:03:52,890 midagi, nad on identsed. 1356 01:03:52,890 --> 01:03:59,030 Ja kui me avada, saame meie faili. 1357 01:03:59,030 --> 01:04:00,490 Nii et see oli õige lahendus. 1358 01:04:00,490 --> 01:04:01,780 Vaatame tagasi seda veel üks kord. 1359 01:04:01,780 --> 01:04:04,080 Me tegelikult ei ole isegi vaja initsialiseerida ta. 1360 01:04:04,080 --> 01:04:05,520 >> See oleks ilmselt nägema puhtam, kui sa ei pane 1361 01:04:05,520 --> 01:04:07,680 midagi juhuslikult sinna. 1362 01:04:07,680 --> 01:04:13,070 Asi on, siis on vaja luua ruumi, et salvestada midagi 1363 01:04:13,070 --> 01:04:15,530 fread ja võtta midagi välja fwrite. 1364 01:04:15,530 --> 01:04:18,400 Ja et asi pidi olema kas kohaliku muutuja stack - sa 1365 01:04:18,400 --> 01:04:19,890 oleksin malloc'd ruumi. 1366 01:04:19,890 --> 01:04:23,030 >> Nii et me tegelikult võiks olla kirjutatud malloc siin, ja 1367 01:04:23,030 --> 01:04:25,420 mis oleks töötanud. 1368 01:04:25,420 --> 01:04:28,660 Ja siis me oleks ladustamiseks meie asjad kuskil hunnik. 1369 01:04:28,660 --> 01:04:31,940 Aga see on tegelikult ilmselt kõige elegantne lahendus. 1370 01:04:31,940 --> 01:04:34,490 Lihtsalt luua ruumi virnas need asjad minema. 1371 01:04:34,490 --> 01:04:37,690 1372 01:04:37,690 --> 01:04:38,990 >> Ma oleks kaks kommentaari. 1373 01:04:38,990 --> 01:04:44,650 Kui sa olid võtta omakorda selle, ja siis saad viskas selle minu selgitused 1374 01:04:44,650 --> 01:04:47,400 oleks järgmine. 1375 01:04:47,400 --> 01:04:54,300 Need 1 on siin, et mind, vaata nagu magic numbreid. 1376 01:04:54,300 --> 01:04:56,860 See 1 mõttes fread, mõtet. 1377 01:04:56,860 --> 01:04:59,580 See on mitmeid asju lugeda või kirjutada. 1378 01:04:59,580 --> 01:05:03,740 >> Aga see siin peaks arvatavasti midagi muud. 1379 01:05:03,740 --> 01:05:05,180 Mis on üks lahendus? 1380 01:05:05,180 --> 01:05:06,545 >> STUDENT 65: Suurus baidi. 1381 01:05:06,545 --> 01:05:10,100 1382 01:05:10,100 --> 01:05:11,080 >> JASON Hirschhorn: Niimoodi? 1383 01:05:11,080 --> 01:05:13,130 >> STUDENT 65: Size of char. 1384 01:05:13,130 --> 01:05:13,820 >> JASON Hirschhorn: Size of char. 1385 01:05:13,820 --> 01:05:15,290 Jah, bait ei ole tüüp. 1386 01:05:15,290 --> 01:05:16,320 Nii suurus char töid. 1387 01:05:16,320 --> 01:05:30,270 Me oleks võinud tipus meie kood, # määratletud seda. 1388 01:05:30,270 --> 01:05:33,410 Nimetatakse midagi BYTE ja see on tõesti märk. 1389 01:05:33,410 --> 01:05:37,675 Tegelikult isegi parem lähenemine oleks võinud seda - 1390 01:05:37,675 --> 01:05:39,391 uint. 1391 01:05:39,391 --> 01:05:40,780 Kas keegi teab, mis see on? 1392 01:05:40,780 --> 01:05:44,388 1393 01:05:44,388 --> 01:05:44,840 >> Vabandust. 1394 01:05:44,840 --> 01:05:46,090 Mul on seda tahapoole. 1395 01:05:46,090 --> 01:05:51,620 1396 01:05:51,620 --> 01:05:52,200 Oota, ei. 1397 01:05:52,200 --> 01:05:53,450 Kuhupoole see minna? 1398 01:05:53,450 --> 01:05:58,071 1399 01:05:58,071 --> 01:05:59,660 Kas keegi teab, mis see on? 1400 01:05:59,660 --> 01:06:00,950 Jah. 1401 01:06:00,950 --> 01:06:05,650 >> STUDENT 67: peaks aitama ühtlustada kogu süsteemi asju, 1402 01:06:05,650 --> 01:06:08,760 on - nagu unsigned täisarve mis on 8 baiti? 1403 01:06:08,760 --> 01:06:11,785 >> JASON Hirschhorn: See on täpselt õige. 1404 01:06:11,785 --> 01:06:14,310 On erinevaid masinaid, suurus paalia - 1405 01:06:14,310 --> 01:06:15,180 tavaliselt ei char. 1406 01:06:15,180 --> 01:06:16,100 Tähte on tavaliselt üks bait. 1407 01:06:16,100 --> 01:06:19,590 Aga suurus teisi andmeid tüübid on erinevad suurused on 32-bit masin 1408 01:06:19,590 --> 01:06:21,370 versus 64-bit masin. 1409 01:06:21,370 --> 01:06:25,180 Uint8_t on alati 8 bitti - 1410 01:06:25,180 --> 01:06:27,210 alati üks bait. 1411 01:06:27,210 --> 01:06:29,580 >> Ja mul on vaja lisada, et standard int header fail. 1412 01:06:29,580 --> 01:06:35,040 Nüüd, see on ilmselt parim viis kirjutada seda koodi. 1413 01:06:35,040 --> 01:06:40,160 1414 01:06:40,160 --> 01:06:41,450 Nii et ma vabaneda magic numbreid. 1415 01:06:41,450 --> 01:06:44,690 Ja mul on ka loogiline kirjuta puhvri. 1416 01:06:44,690 --> 01:06:49,450 See pole lihtsalt paalia on bait, mis on see, mida me ootame, et see oleks. 1417 01:06:49,450 --> 01:06:53,400 >> Ja siin me oleme tegelikult olnud veidi tugevam. 1418 01:06:53,400 --> 01:06:55,190 Me ei kutsu seda char, mis - 1419 01:06:55,190 --> 01:06:58,630 võib-olla, kes teab - võib olla erinev suurus erinevate seadmetega. 1420 01:06:58,630 --> 01:07:02,025 Me tegelikult öelda, et see on täpselt see, üks bait, alati, ükskõik mida. 1421 01:07:02,025 --> 01:07:05,810 Ja kui me vaatame siia, siis me teeme ap. 1422 01:07:05,810 --> 01:07:08,340 Uh-oh. 1423 01:07:08,340 --> 01:07:09,590 Mis juhtus? 1424 01:07:09,590 --> 01:07:14,470 1425 01:07:14,470 --> 01:07:16,170 >> STUDENT 68: See võib olla sisse. 1426 01:07:16,170 --> 01:07:17,880 >> JASON Hirschhorn: Mis on? 1427 01:07:17,880 --> 01:07:19,130 >> STUDENT 69: Kas see? 1428 01:07:19,130 --> 01:07:21,940 1429 01:07:21,940 --> 01:07:25,080 >> STUDENT 70: Sa ei teinud defineerida kui tüüp. 1430 01:07:25,080 --> 01:07:28,684 >> STUDENT 71: Aga see peaks määratletakse standard. 1431 01:07:28,684 --> 01:07:29,934 >> STUDENT 72: Mis toimub? 1432 01:07:29,934 --> 01:07:37,660 1433 01:07:37,660 --> 01:07:40,210 >> STUDENT 73: Kas määratleda olema kõik mütsid? 1434 01:07:40,210 --> 01:07:41,370 >> JASON Hirschhorn: nii see ei ole # define. 1435 01:07:41,370 --> 01:07:45,490 Tegelikult antud juhul ma olen kavatse kasutada typedef. 1436 01:07:45,490 --> 01:07:48,590 Kuna me kasutame seda tüüp ühes kohas. 1437 01:07:48,590 --> 01:07:51,990 Nii selles asjas tahame tegelikult typedef nagu me printimiseks uut tüüpi 1438 01:07:51,990 --> 01:07:54,490 bait, ja see on sisuliselt seda. 1439 01:07:54,490 --> 01:07:56,590 See on natuke teistsugune kui # define. 1440 01:07:56,590 --> 01:08:02,740 >> Ja nüüd, meie kood toimib suurepäraselt. 1441 01:08:02,740 --> 01:08:05,230 Niisiis, jälle, # define võtab midagi asendab see kõikjal 1442 01:08:05,230 --> 01:08:06,780 teiste asi. 1443 01:08:06,780 --> 01:08:07,920 See on lihtsalt makro - 1444 01:08:07,920 --> 01:08:09,420 stenografist vabaneda magic numbreid. 1445 01:08:09,420 --> 01:08:11,360 Aga sel juhul, sest me oleme kasutades seda tüüpi - 1446 01:08:11,360 --> 01:08:12,180 siin - 1447 01:08:12,180 --> 01:08:19,880 selleks, et töötada, peame et typedef iganes bait on. 1448 01:08:19,880 --> 01:08:21,840 >> Ja me määratledes seda siin. 1449 01:08:21,840 --> 01:08:24,750 See ei ole struktuure, see on tegelikult lihtsalt allkirjastamata täisarv. 1450 01:08:24,750 --> 01:08:27,680 See on üks bait pikk. 1451 01:08:27,680 --> 01:08:31,910 See kood on kättesaadavad Internetis, ja te kõik peaks olema see kohe. 1452 01:08:31,910 --> 01:08:33,830 >> Nii et meil on - 1453 01:08:33,830 --> 01:08:34,250 täiuslik - 1454 01:08:34,250 --> 01:08:41,359 13 minutit aega, et minna üle lahendamist 5. 1455 01:08:41,359 --> 01:08:44,270 Ma tahan kõndida läbi copy.c kokku ja siis me räägime lühidalt 1456 01:08:44,270 --> 01:08:47,120 umbes muud osad Probleemi seatud. 1457 01:08:47,120 --> 01:08:48,899 Nii et lubage mul tõmba copy.c. 1458 01:08:48,899 --> 01:09:03,930 1459 01:09:03,930 --> 01:09:08,810 Ja lahe asi on, me tegelikult juba kirjutanud palju see kood. 1460 01:09:08,810 --> 01:09:11,180 >> Kood kandsime sõnalt lihtsalt tuli siia, kui ma olin 1461 01:09:11,180 --> 01:09:13,120 Kirjutan seda minu oma. 1462 01:09:13,120 --> 01:09:16,990 Aga see on copy.c moodustab sihtasutuse võtta kaks esimest osa 1463 01:09:16,990 --> 01:09:22,340 probleem seatud whodunit.c, mis teil on vaja kirjutada ja resize.c. 1464 01:09:22,340 --> 01:09:27,050 Recover.c, mis on kolmas ja viimane osa probleemist komplekt, ei ole 1465 01:09:27,050 --> 01:09:29,529 põhineb off seda faili. 1466 01:09:29,529 --> 01:09:32,200 >> Sa lähed on vaja kirjutada, et faili anname malli et 1467 01:09:32,200 --> 01:09:34,620 faili, kuid see on midagi pistmist copy.c. 1468 01:09:34,620 --> 01:09:38,675 Aga kuna copy.c on vundament kaks esimest osa, me 1469 01:09:38,675 --> 01:09:42,000 läbi minema nüüd, et teil on heas mõttes, mida ta teeb. 1470 01:09:42,000 --> 01:09:43,640 >> Ja kommentaarid annavad mõned ära. 1471 01:09:43,640 --> 01:09:45,120 Me oleme juba kirjutanud mõned seda. 1472 01:09:45,120 --> 01:09:49,220 Esiteks, me tagada, saame kolm argumenti. 1473 01:09:49,220 --> 01:09:50,560 Järgmisena me mäleta faili nime. 1474 01:09:50,560 --> 01:09:52,960 Nii et me vahele selle sammu, kui me kodeeritud meie asi - 1475 01:09:52,960 --> 01:09:54,700 kui meie AP. 1476 01:09:54,700 --> 01:09:56,750 Aga siin nad teha see veidi puhtamaks. 1477 01:09:56,750 --> 01:09:59,350 >> Nad kontrollides veenduda mõlemad failid on hea, et 1478 01:09:59,350 --> 01:10:00,450 Lisaks avamist. 1479 01:10:00,450 --> 01:10:04,760 Me kirjutasime kõik see kood lihtsalt nüüd, et ma olen ei hakka selle koodi. 1480 01:10:04,760 --> 01:10:09,670 Järgmine on mõned asjad, mis on omased tüüpi faile, mida me kasutame, mis 1481 01:10:09,670 --> 01:10:12,240 on bitmap faili. 1482 01:10:12,240 --> 01:10:15,660 Bitmap failid on mõned metaandmed nendega. 1483 01:10:15,660 --> 01:10:20,190 >> Nii et esimese paari baiti räägin sulle faili. 1484 01:10:20,190 --> 01:10:23,460 Nad ei ole värvid piksel, et pilt. 1485 01:10:23,460 --> 01:10:25,120 Nad räägivad teile faili kohta. 1486 01:10:25,120 --> 01:10:28,220 Ja kui sa loed läbi probleem kogum, sul on palju rohkem teavet 1487 01:10:28,220 --> 01:10:33,100 kohta, milliseid metaandmeid struktuurid on kaasas bitmaps. 1488 01:10:33,100 --> 01:10:39,350 >> Aga sellepärast me peame seda kõigepealt komplekt - seda koodi siin. 1489 01:10:39,350 --> 01:10:42,490 Meil loevad metaandmed - 1490 01:10:42,490 --> 01:10:45,800 kaks tükki metaandmed - fail header ja info kaudu. 1491 01:10:45,800 --> 01:10:51,030 Ja me kontrollime mõned osad selle veenduge, et see on tõsi, bitmap faili 1492 01:10:51,030 --> 01:10:52,420 enne jätkamist. 1493 01:10:52,420 --> 01:10:55,470 >> Ja veel, need on andmed meie ei pea minema nüüd. 1494 01:10:55,470 --> 01:10:57,720 Kui sa loed läbi probleem kogum, te mõistate neid. 1495 01:10:57,720 --> 01:11:01,370 Pikk lugu lühike, need on lihtsalt öeldes see on bitmap faili ja 1496 01:11:01,370 --> 01:11:02,810 kinnitades, et. 1497 01:11:02,810 --> 01:11:05,180 >> Järgmine oleme kirjutan need et välja faili. 1498 01:11:05,180 --> 01:11:05,660 Me näeme, et siin. 1499 01:11:05,660 --> 01:11:06,910 Me kirjutame välja pointer. 1500 01:11:06,910 --> 01:11:09,260 1501 01:11:09,260 --> 01:11:11,320 Järgmisena me määramise polster. 1502 01:11:11,320 --> 01:11:15,240 Niisiis jälle, nagu on iseärasus koos bitmap faili, mõned read sisaldavad 1503 01:11:15,240 --> 01:11:16,840 polster lõpus. 1504 01:11:16,840 --> 01:11:19,000 Ja kui sa loed läbi probleem kogum, saate rohkem teada polster. 1505 01:11:19,000 --> 01:11:22,330 See on valem leida polster. 1506 01:11:22,330 --> 01:11:23,610 >> Tähtis on meeles pidada - 1507 01:11:23,610 --> 01:11:29,720 kui muudad suurust bitmap fail, polster muutusi. 1508 01:11:29,720 --> 01:11:31,970 Kui muudad suurust fail, polster muutusi. 1509 01:11:31,970 --> 01:11:34,310 See ei saa kunagi olema suurem kui 3 - 1510 01:11:34,310 --> 01:11:36,510 see saab olema 0 kuni 3, viimane kaasa arvatud. 1511 01:11:36,510 --> 01:11:38,930 Aga kui sa suuruse muutmiseks midagi, polster muutusi. 1512 01:11:38,930 --> 01:11:47,100 >> Kui mul on ainult üks piksel, mis rida, ma vaja kolme bytes padding, sest 1513 01:11:47,100 --> 01:11:51,190 iga rida peab olema telli neli baidi sisse bitmap faili. 1514 01:11:51,190 --> 01:11:56,120 Aga kui ma seda kahekordistada, et minna ühe piksli kahe piksli, millest mõlemas 1515 01:11:56,120 --> 01:11:59,510 oletame, on bait, siis ma vajan kaks baiti padding teha 1516 01:11:59,510 --> 01:12:00,970 mis võrdub nelja. 1517 01:12:00,970 --> 01:12:04,200 >> Nii et kui ma suurust muuta midagi, Mul on vaja muuta summa 1518 01:12:04,200 --> 01:12:06,551 padding olen. 1519 01:12:06,551 --> 01:12:08,100 Kas see mõistlik kõigile? 1520 01:12:08,100 --> 01:12:12,020 1521 01:12:12,020 --> 01:12:18,720 Edasi me Käi iga rida, või kõik read. 1522 01:12:18,720 --> 01:12:21,400 Ja siis me kinnitada, läbi iga veeru iga rea. 1523 01:12:21,400 --> 01:12:25,330 Me ravimisel bitmap nagu võrku, nagu me oleme töödeldud 1524 01:12:25,330 --> 01:12:26,490 pardal 15. 1525 01:12:26,490 --> 01:12:29,200 >> Nagu me ravida telliste kui me trükitud need ekraanile. 1526 01:12:29,200 --> 01:12:31,350 Grid ridu ja veerge. 1527 01:12:31,350 --> 01:12:32,350 Siis - nägime seda. 1528 01:12:32,350 --> 01:12:33,840 Me tegelikult lihtsalt kodeeritud see. 1529 01:12:33,840 --> 01:12:35,780 Oleme loonud mõned ajutine ladustamine. 1530 01:12:35,780 --> 01:12:38,710 Me loeme seal, ja siis me kirjutame selle välja. 1531 01:12:38,710 --> 01:12:42,680 See on täpselt see, mida me tegime. 1532 01:12:42,680 --> 01:12:46,760 >> Järgmiseks sest ma ütlesin iga rida lõpeb mõned padding, me 1533 01:12:46,760 --> 01:12:48,260 Otse üle, et polster - 1534 01:12:48,260 --> 01:12:51,000 vana polster. 1535 01:12:51,000 --> 01:12:52,630 Ja siis lisame selle tagasi. 1536 01:12:52,630 --> 01:12:55,140 Sel juhul me luua täpselt sama fail. 1537 01:12:55,140 --> 01:12:56,180 Me lihtsalt kopeerides. 1538 01:12:56,180 --> 01:12:57,700 Nii et see rida on selline tobe. 1539 01:12:57,700 --> 01:12:59,660 Meil võib sõna otseses mõttes lihtsalt pane padding sisse 1540 01:12:59,660 --> 01:13:04,290 >> Aga kui muudad faili suurus, sa ikka tahad seda joont? 1541 01:13:04,290 --> 01:13:08,510 1542 01:13:08,510 --> 01:13:11,560 Nii et kui me muuta suurust faili Kas me ikka tahame vahele 1543 01:13:11,560 --> 01:13:12,810 üle vana polster? 1544 01:13:12,810 --> 01:13:15,170 1545 01:13:15,170 --> 01:13:15,970 >> STUDENT 74: Jah. 1546 01:13:15,970 --> 01:13:17,090 >> JASON Hirschhorn: Nii et me teeme. 1547 01:13:17,090 --> 01:13:19,290 Kuna see jällegi pakkumisi koos lähtefaili. 1548 01:13:19,290 --> 01:13:21,570 Me ei hooli polster lähtefaili. 1549 01:13:21,570 --> 01:13:23,410 Me tahame minna järgmisele reale. 1550 01:13:23,410 --> 01:13:28,850 Aga me ei saa lihtsalt tagasi panna vana summa polster. 1551 01:13:28,850 --> 01:13:31,540 Me peame tagasi panna uus summa polster. 1552 01:13:31,540 --> 01:13:35,810 >> Nii et kui me suuruse muutmine fail, me ikka tahame vahele jätta 1553 01:13:35,810 --> 01:13:38,270 polster vana faili - mida me loed alates. 1554 01:13:38,270 --> 01:13:40,370 Aga mida me kirjutame, me vaja tagasi panna mõned erinevad 1555 01:13:40,370 --> 01:13:41,890 number padding et oleme määratud. 1556 01:13:41,890 --> 01:13:42,780 Jah. 1557 01:13:42,780 --> 01:13:44,550 >> STUDENT 75: et need kaks jooned ei ole tähtis, kas pole? 1558 01:13:44,550 --> 01:13:46,160 Sest sa käitlemise erinevaid faile. 1559 01:13:46,160 --> 01:13:46,620 >> JASON Hirschhorn: Täpselt. 1560 01:13:46,620 --> 01:13:48,220 Et need kaks rida Vahet pole. 1561 01:13:48,220 --> 01:13:49,790 Me kirjutame seda joont. 1562 01:13:49,790 --> 01:13:51,430 See on siin pilti me kirjutame. 1563 01:13:51,430 --> 01:13:54,370 See on oluline, et me saame õige kogus padding. 1564 01:13:54,370 --> 01:13:57,560 See on tegeleda faili. 1565 01:13:57,560 --> 01:13:58,560 Tahame vahele õigus üle polster. 1566 01:13:58,560 --> 01:13:59,470 >> Me ei taha lugeda - 1567 01:13:59,470 --> 01:14:01,500 kui me lugemist bait korraga, me ei huvita need täidisbaidid. 1568 01:14:01,500 --> 01:14:04,070 Me tahame, et liikuda järgmisele reale. 1569 01:14:04,070 --> 01:14:11,800 Lõpuks nagu Lucy andis meie eest, sulgeme faili ja tagastab 0. 1570 01:14:11,800 --> 01:14:13,890 Nii et see on copy.c. 1571 01:14:13,890 --> 01:14:17,850 Ja me tegelikult kirjutasin - veetsime enamik lõik kirjutamise sisuliselt. 1572 01:14:17,850 --> 01:14:18,740 >> Sa tegid seda. 1573 01:14:18,740 --> 01:14:22,440 Loodetavasti teil on hea tunne sellest, mis siin toimub. 1574 01:14:22,440 --> 01:14:25,890 Suur vahe, ausalt, on lihtsalt Selle esimene osa, mis tegeleb 1575 01:14:25,890 --> 01:14:29,970 iseärasustest bitmap faili. 1576 01:14:29,970 --> 01:14:33,570 Nii et ma pean, kui mu kõrval slaidile Mida me peame tegema? 1577 01:14:33,570 --> 01:14:35,510 Noh, mõtleme Dekkari. 1578 01:14:35,510 --> 01:14:38,080 >> Ja keegi, kes läbi lugeda lahendamist, mida me 1579 01:14:38,080 --> 01:14:41,410 vaja teha Dekkari? 1580 01:14:41,410 --> 01:14:42,080 Lihtsalt. 1581 01:14:42,080 --> 01:14:42,460 Aleja. 1582 01:14:42,460 --> 01:14:48,570 >> Aleja: Kas võtta osa Iga piksel mis tähistab punane. 1583 01:14:48,570 --> 01:14:49,730 Ja siis - 1584 01:14:49,730 --> 01:14:50,730 selline? 1585 01:14:50,730 --> 01:14:51,860 >> JASON Hirschhorn: OK. 1586 01:14:51,860 --> 01:14:54,460 Nii, et võta välja osa iga piksel, mis tähistab punane. 1587 01:14:54,460 --> 01:14:57,234 See on lähedal, kuid mitte kõik. 1588 01:14:57,234 --> 01:14:59,780 >> STUDENT 76: Noh, seal erinevaid viise, kuidas seda teha. 1589 01:14:59,780 --> 01:14:59,870 >> JASON Hirschhorn: OK. 1590 01:14:59,870 --> 01:15:03,070 Anna mulle üks võimalus. 1591 01:15:03,070 --> 01:15:08,240 >> STUDENT 76: Võtke kõik punane ja siis rõhutavad sinine ja roheline. 1592 01:15:08,240 --> 01:15:10,010 >> JASON Hirschhorn: OK. 1593 01:15:10,010 --> 01:15:11,830 Nii antakse mõlemas suunas - 1594 01:15:11,830 --> 01:15:15,210 see kõlab nagu me anname seda pixel, ta on punane, sinine ja roheline tasandil. 1595 01:15:15,210 --> 01:15:19,350 Me tahame muuta suhtelist taset punane, sinine ja roheline, sõltuvalt 1596 01:15:19,350 --> 01:15:20,740 selle pixel. 1597 01:15:20,740 --> 01:15:28,380 Kui see kood peaks muudame suhteline punane, sinine ja roheline 1598 01:15:28,380 --> 01:15:29,720 tasemed piksli. 1599 01:15:29,720 --> 01:15:30,600 Pärast oleme seda lugenud - 1600 01:15:30,600 --> 01:15:32,520 enne kui me seda kirjutada? 1601 01:15:32,520 --> 01:15:34,564 Anna liin number. 1602 01:15:34,564 --> 01:15:35,950 >> MITU Õpilased: 83. 1603 01:15:35,950 --> 01:15:37,320 >> JASON Hirschhorn: 83. 1604 01:15:37,320 --> 01:15:38,570 Nii siin. 1605 01:15:38,570 --> 01:15:40,830 1606 01:15:40,830 --> 01:15:45,710 Sest Dekkari, kood, mida vaja write peaks kõik minema sinna. 1607 01:15:45,710 --> 01:15:47,640 Ja see on ainult kood teil on vaja kirjutada. 1608 01:15:47,640 --> 01:15:51,520 Sest, nagu me kuulsime, mida vaja teha, on muuta need suhteline sinine, 1609 01:15:51,520 --> 01:15:54,420 punane ja roheline taset iga piksli. 1610 01:15:54,420 --> 01:15:58,250 >> Te olete lugenud seda, ja nüüd sa oled kavatsete kirjutada seda. 1611 01:15:58,250 --> 01:16:03,100 Kuidas saada - kui mul on see asi nimega triple, siin, ja see on 1612 01:16:03,100 --> 01:16:04,570 kirjuta RGBTRIPLE - 1613 01:16:04,570 --> 01:16:08,650 Noh, kui me vaatasin bmp.h, Mis on RGBTRIPLE? 1614 01:16:08,650 --> 01:16:11,450 1615 01:16:11,450 --> 01:16:12,700 >> STUDENT 77: See on struct. 1616 01:16:12,700 --> 01:16:17,440 1617 01:16:17,440 --> 01:16:18,900 >> JASON Hirschhorn: RGBTRIPLE on struct. 1618 01:16:18,900 --> 01:16:22,330 Me näeme, et siin all. 1619 01:16:22,330 --> 01:16:26,600 Ja kui ma tahtsin juurdepääs, ütleme, punane taseme struktuure, kuidas ma 1620 01:16:26,600 --> 01:16:30,005 pääseda punase taset see struct? 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: Kas see on õige? 1625 01:16:48,856 --> 01:16:53,040 >> STUDENT 79: See peaks olema kolmekordne dot asemel RGBTRIPLE dot? 1626 01:16:53,040 --> 01:16:54,120 >> JASON Hirschhorn: Triple. 1627 01:16:54,120 --> 01:16:56,700 Triple on kohaliku muutuja, nii siin pole mingit näpunäiteid siin. 1628 01:16:56,700 --> 01:16:58,400 Nii et me lihtsalt kasutada dot märke. 1629 01:16:58,400 --> 01:17:00,480 See annab mulle tase punane. 1630 01:17:00,480 --> 01:17:06,180 Kui ma tahan seda muuta, ma lihtsalt seada see on võrdne midagi muud. 1631 01:17:06,180 --> 01:17:13,190 Nii et taas, see koodirida juurdepääsude Selle muutuja sees see struct ja 1632 01:17:13,190 --> 01:17:15,070 saame ta midagi uut. 1633 01:17:15,070 --> 01:17:20,040 >> Nii Dekkari jällegi seda, sisuliselt, mida me peame tegema. 1634 01:17:20,040 --> 01:17:21,170 Väga lihtne. 1635 01:17:21,170 --> 01:17:25,020 Lihtsalt muuta mõned suhtelise taseme ning see on koht, kus see kood läheb. 1636 01:17:25,020 --> 01:17:27,720 Resize, teiselt poolt, on veidi keerukam. 1637 01:17:27,720 --> 01:17:30,900 Tegelikult resize on ilmselt trickiest osa sellest problemaatikast. 1638 01:17:30,900 --> 01:17:32,720 Meil on kolm minutit, et minna üle. 1639 01:17:32,720 --> 01:17:34,910 >> Aga jälle, me oleme juba kirjutanud Kõige selle koodi, nii et me 1640 01:17:34,910 --> 01:17:36,500 peaks olema üsna tuttav. 1641 01:17:36,500 --> 01:17:40,750 Millised on mõned asjad, mida me tahame teha, on suurust, kui olete lugenud üle 1642 01:17:40,750 --> 01:17:43,470 lahendamist? 1643 01:17:43,470 --> 01:17:45,290 Kui sa annad need mulle, me saab rääkida neile. 1644 01:17:45,290 --> 01:17:47,340 Millised on mõned asjad, mida me tahame teha? 1645 01:17:47,340 --> 01:17:47,970 >> STUDENT 80 vertikaalselt - 1646 01:17:47,970 --> 01:17:52,360 nii et teil on horisontaalselt suurust muuta, vaid vertikaalselt suurust muuta ka? 1647 01:17:52,360 --> 01:17:58,475 >> JASON Hirschhorn: Nii et kui me antud pixel, ja me tahame, et selle suurust poolt 1648 01:17:58,475 --> 01:18:03,460 kahega, siis nüüd tuleb suurust horisontaalselt ja suurust 1649 01:18:03,460 --> 01:18:05,220 vertikaalselt. 1650 01:18:05,220 --> 01:18:06,640 Kas see on mõtet? 1651 01:18:06,640 --> 01:18:07,060 Jah. 1652 01:18:07,060 --> 01:18:09,300 Nii et ilmselt Suurim väljakutse. 1653 01:18:09,300 --> 01:18:10,430 Ja siis me räägime, et sek. 1654 01:18:10,430 --> 01:18:11,065 Jah. 1655 01:18:11,065 --> 01:18:15,270 >> STUDENT 81: kuidas ma sellele mõelnud oli teil vaja välja trükkida - 1656 01:18:15,270 --> 01:18:15,490 >> JASON Hirschhorn: Oota. 1657 01:18:15,490 --> 01:18:17,580 Ära ütle meile, mida sa tegid. 1658 01:18:17,580 --> 01:18:20,620 Me räägime loogika. 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 Mis oli küsimus? 1662 01:18:27,410 --> 01:18:28,892 >> JASON Hirschhorn: Sa lihtsalt tõstis oma käe. 1663 01:18:28,892 --> 01:18:31,600 Puudus küsimus. 1664 01:18:31,600 --> 01:18:32,520 Lubage mul esitada see. 1665 01:18:32,520 --> 01:18:34,560 Las ma arutada seda lühidalt. 1666 01:18:34,560 --> 01:18:38,400 Nii oleme üks piksel, tahame imiteerida seda nii horisontaalselt 1667 01:18:38,400 --> 01:18:39,360 vertikaalselt. 1668 01:18:39,360 --> 01:18:48,920 Seega ideaalis, mida me siin teeme on, me Loe meie pikslit, me kirjutada 1669 01:18:48,920 --> 01:18:51,690 Kuid paljud korda. 1670 01:18:51,690 --> 01:18:54,720 >> Aga siis on meil trikk siin, sest siis me tahame, et liikuda 1671 01:18:54,720 --> 01:18:57,660 Järgmine rida ja kirjutada seda alguses järgmisele reale. 1672 01:18:57,660 --> 01:19:02,960 Nii et kui me tahame, et imiteerida nii horisontaalselt kui ka vertikaalselt, mis on 1673 01:19:02,960 --> 01:19:05,050 üks hea viis seda teha - 1674 01:19:05,050 --> 01:19:06,780 üks hea küll teha? 1675 01:19:06,780 --> 01:19:11,950 Nii et me ei pea pidevalt otsima ümber oma faili panna asju. 1676 01:19:11,950 --> 01:19:14,360 >> See küsimus ei pruugi olla loogiline, aga ma arvan, 1677 01:19:14,360 --> 01:19:15,800 vastata, et see aitab. 1678 01:19:15,800 --> 01:19:17,210 >> STUDENT 82: luua massiivi? 1679 01:19:17,210 --> 01:19:20,090 >> JASON Hirschhorn: Mõtleme Iga faili järjest. 1680 01:19:20,090 --> 01:19:22,550 Olgem mõelda ridu. 1681 01:19:22,550 --> 01:19:26,670 Kui meil on meie esimene rida meie väike pilt, saame teha, et järjest 1682 01:19:26,670 --> 01:19:30,640 suurde rea alguses suure pildi ja seejärel korrata, et rida siiski 1683 01:19:30,640 --> 01:19:34,250 Mitu korda tuleb korrata, asemel läheb pikselhaaval, 1684 01:19:34,250 --> 01:19:37,260 mis saab segane, kui tegelevad faile. 1685 01:19:37,260 --> 01:19:38,730 >> Sest kui meil oleks - 1686 01:19:38,730 --> 01:19:41,260 Ma ruum otsa. 1687 01:19:41,260 --> 01:19:46,490 Kui see on meie faili ja meil on see üks piksel seal, ja me tahame panna 1688 01:19:46,490 --> 01:19:49,840 seal on meil veel mõned asjad et vaja sinna minna, kui me 1689 01:19:49,840 --> 01:19:51,450 kirjalikult ning luua meie uus fail - 1690 01:19:51,450 --> 01:19:53,250 meie fail see on kaks korda nii suur. 1691 01:19:53,250 --> 01:19:56,820 >> Aga see on tõesti raske failide funktsioonid vahele ümber uute liinide 1692 01:19:56,820 --> 01:20:00,260 niimoodi, ja siis tagasi minna siin ja kraamima seal. 1693 01:20:00,260 --> 01:20:04,500 See on peaaegu võimatu midagi teha nagu, et kui see on mõistlik. 1694 01:20:04,500 --> 01:20:10,180 Nii et kui me mõelda rida, saame võtta meie rida, ja siis pane see - 1695 01:20:10,180 --> 01:20:11,720 imiteerida rida vertikaalselt. 1696 01:20:11,720 --> 01:20:15,860 >> Ja see, kuidas me käsitleme saneerimist vertikaalselt mitte horisontaalselt. 1697 01:20:15,860 --> 01:20:18,810 See oli selline kiire ja veidi segadusse. 1698 01:20:18,810 --> 01:20:22,375 Kahjuks meie aeg on läbi. 1699 01:20:22,375 --> 01:20:27,340 Mul seisab väljaspool neile, siin, kes on küsimusi 1700 01:20:27,340 --> 01:20:30,500 Ülesanded, sealhulgas taastuda. 1701 01:20:30,500 --> 01:20:32,320 >> Teeme lükata nüüd. 1702 01:20:32,320 --> 01:20:34,480 Ja veel, kui teil on küsimusi, saame vestelda väljaspool. 1703 01:20:34,480 --> 01:20:38,294