1 00:00:00,000 --> 00:00:07,810 2 00:00:07,810 --> 00:00:09,840 >> JASON HIRSCHHORN: Tervetuloa, kaikille, jotta Viikko 6. 3 00:00:09,840 --> 00:00:14,790 Olen iloinen nähdessäni teidät kaikki elossa ja hyvin jälkeen Quiz 0, koska tiedän, että 4 00:00:14,790 --> 00:00:15,810 oli vähän karkea. 5 00:00:15,810 --> 00:00:18,370 Mutta onneksi te kaikki teki uskomattoman hyvin. 6 00:00:18,370 --> 00:00:21,680 Ja niin se on hienoa. 7 00:00:21,680 --> 00:00:25,840 Jos olet minun jaksossa, olen antanut eniten teistä takaisin tietokilpailuja jo. 8 00:00:25,840 --> 00:00:28,050 >> Pari teistä, Tapaan tunnin jälkeen. 9 00:00:28,050 --> 00:00:32,360 Ja jos olet laajennus opiskelija-ja et ole saanut tietokilpailun takaisin 10 00:00:32,360 --> 00:00:35,490 vielä, oma TF on todennäköisesti käsittelemään sitä ja luokittelu se, ja saa sen takaisin 11 00:00:35,490 --> 00:00:36,490 sinulle pian. 12 00:00:36,490 --> 00:00:39,650 Joten minun laajennus opiskelijoita, jotka ovat katsot juuri nyt - toivottavasti elää - 13 00:00:39,650 --> 00:00:42,880 Pääsen tietokilpailuja pian samoin. 14 00:00:42,880 --> 00:00:45,670 >> Meidän päivän esityslistaa on seuraava. 15 00:00:45,670 --> 00:00:50,170 Ensin aiomme mennä yli joitakin resursseja CS50 tarjoaa sinulle. 16 00:00:50,170 --> 00:00:54,590 Aiomme mennä yli Quiz 0 seuraavalle, ja Minä vastata kaikkiin kysymyksiin ketään 17 00:00:54,590 --> 00:00:57,360 on noin erityisiä ongelmia. 18 00:00:57,360 --> 00:01:02,050 Ja sitten me menee yli tiedoston I / O ja ongelma asettaa 5. 19 00:01:02,050 --> 00:01:07,360 Nämä kaksi viimeksi mainittua aihetta ottaa muodostavat suurimman osan jaksossa tänään. 20 00:01:07,360 --> 00:01:11,680 >> Laitoin tämän luettelon ajan joka viikko muistutus teille kaikille, mutta ydin 21 00:01:11,680 --> 00:01:14,650 jakso, meillä on vain 90 minuuttia - me eivät pysty kattamaan kaikkea, mitä minä 22 00:01:14,650 --> 00:01:16,280 haluaisivat kattaa teitä. 23 00:01:16,280 --> 00:01:21,170 Mutta meillä on ton resursseja voit hyödyntää niin saat tietää 24 00:01:21,170 --> 00:01:24,000 materiaalin ja työn kautta ongelman asettaa. 25 00:01:24,000 --> 00:01:30,810 >> Muistutus siitä, että minulla on verkossa tekstin laatikko, perustettu voit täyttää, jos 26 00:01:30,810 --> 00:01:33,250 on palautetta minulle, sekä myönteisiä 27 00:01:33,250 --> 00:01:35,180 rakentavaa, noin osiosta. 28 00:01:35,180 --> 00:01:38,600 Että URL sijaitsee aivan täällä. 29 00:01:38,600 --> 00:01:43,250 Joten, hetki, jos sinulla on palautetta, onko aikana osiossa 30 00:01:43,250 --> 00:01:48,030 tai sen jälkeen, tai sen jälkeen katsot video verkossa, antaa minulle palautetta. 31 00:01:48,030 --> 00:01:52,100 Olen todella kiitollinen kaikesta siitä. 32 00:01:52,100 --> 00:01:55,730 >> Joten minulla on ollut pieniä keskusteluja kanssa paljon minun 33 00:01:55,730 --> 00:01:59,350 opiskelijat koko viikon - kuten Ojennan takaisin tietokilpailuja, puhumme 34 00:01:59,350 --> 00:02:01,480 Tietenkin nähdä, miten teet. 35 00:02:01,480 --> 00:02:05,120 Ja yksi teema on tullut esiin yhä yli puhuessaan - vuonna 36 00:02:05,120 --> 00:02:05,660 erityisesti - 37 00:02:05,660 --> 00:02:07,710 ongelma asettaa. 38 00:02:07,710 --> 00:02:13,090 Ja olen kapseloitu että teema taululle juuri nyt. 39 00:02:13,090 --> 00:02:16,630 >> Pääasiassa kysymys on eroa välillä kääntämällä jotain, joka on 40 00:02:16,630 --> 00:02:19,590 tehdään oikein ja jotain että on tehty hyvin. 41 00:02:19,590 --> 00:02:22,920 Useimmat ihmiset ovat tehneet fantastista kannalta oikeellisuutta - 42 00:02:22,920 --> 00:02:25,460 5: n tai 4: n kaikissa psets. 43 00:02:25,460 --> 00:02:27,930 Useimmat ihmiset saavat nämä koko ajan. 44 00:02:27,930 --> 00:02:31,150 >> Kuitenkin vain siksi olet tehnyt jotain oikein ei tarkoita olet 45 00:02:31,150 --> 00:02:34,450 tehnyt jotain niin tyylikkäästi, tai tehokkaasti, tai siististi kuin 46 00:02:34,450 --> 00:02:35,270 voineet tehdä sen. 47 00:02:35,270 --> 00:02:36,790 Ja sitähän suunnittelu - 48 00:02:36,790 --> 00:02:39,230 ja vähemmässä määrin tyyli - 49 00:02:39,230 --> 00:02:40,450 akselit ovat. 50 00:02:40,450 --> 00:02:45,130 Olen siis työntää teitä kaikkia, ja muut TFs ajavat te, paitsi puolestaan 51 00:02:45,130 --> 00:02:48,320 asioita, jotka ovat oikein, mutta käännä in asioita, jotka on koodattu hyvin. 52 00:02:48,320 --> 00:02:53,060 >> Ei tee tarpeettomia silmukoita, ei laskematta muuttujia, jos 53 00:02:53,060 --> 00:02:53,800 sinun ei tarvitse. 54 00:02:53,800 --> 00:02:58,520 Esimerkiksi taaksensa Harjoitus 4 saattaessaan tiilet 55 00:02:58,520 --> 00:03:03,070 näyttö, joka rivillä - joka tiilestä annetaan rivillä on sama y-koordinaatti - 56 00:03:03,070 --> 00:03:04,390 samalla korkeudella koordinaatti. 57 00:03:04,390 --> 00:03:07,930 >> Niin, että y-koordinaatti ei tarvitse laskettava sisällä sisustus 58 00:03:07,930 --> 00:03:11,070 sisäkkäistä silmukkaa, että olet todennäköisesti käyttää laittaa ne tiilet ruudulla. 59 00:03:11,070 --> 00:03:14,030 Se vain on laskettava joka kerran kytketään rivin tai 60 00:03:14,030 --> 00:03:15,200 siirretään alas peräkkäin. 61 00:03:15,200 --> 00:03:19,760 Joten sanoa jos on 10 tiiliä rivi, jokainen tiili voi olla sama 62 00:03:19,760 --> 00:03:22,260 y-koordinaatti, ja että y-koordinaatti voi vain laskea 63 00:03:22,260 --> 00:03:23,550 kerran kaikille niille. 64 00:03:23,550 --> 00:03:27,810 >> Sen ei tarvitse laskea 10 kertaa, eikä tämän laskennan tarve 65 00:03:27,810 --> 00:03:30,220 tapahtua todellinen funktiokutsua - 66 00:03:30,220 --> 00:03:33,020 uusi gracked funktiokutsuna. 67 00:03:33,020 --> 00:03:37,820 Joten jos se oli hieman hämmentävää te, enemmän yleisesti, asioita, jotka 68 00:03:37,820 --> 00:03:40,730 ei tarvitse tapahtua joka kerta käytte läpi FOR silmukan ei pitäisi olla 69 00:03:40,730 --> 00:03:42,900 laittaa sisälle varten silmukka, ja ei pitäisi tapahtuu joka kerta kun lähdet 70 00:03:42,900 --> 00:03:44,080 kautta varten silmukka. 71 00:03:44,080 --> 00:03:49,270 >> Toinen hyvä suunnittelu esimerkki näimme viikolla 3 15, voit pitää 72 00:03:49,270 --> 00:03:50,500 kirjaa nolla. 73 00:03:50,500 --> 00:03:53,600 Joten kun alustaa Laivalla tallenna - in globaali muuttuja, ehkä - 74 00:03:53,600 --> 00:03:56,140 x-ja y-koordinaatti on nolla. 75 00:03:56,140 --> 00:03:57,520 Ja sitten kun - 76 00:03:57,520 --> 00:04:00,310 Your Move-toimintoa, kun soitat onnistuneeksi, päivität 77 00:04:00,310 --> 00:04:02,040 sijainnin nolla. 78 00:04:02,040 --> 00:04:06,240 >> Se säästää saamasta tehdä sisäkkäisiä silmukoita käydä läpi 79 00:04:06,240 --> 00:04:10,700 nousta aina teidän liikefunktio ja löytää nolla, tai löytää laatta, 80 00:04:10,700 --> 00:04:12,460 ja sitten tarkistaa, mitä on sen vieressä. 81 00:04:12,460 --> 00:04:16,329 Sen sijaan sinulla on sijainti nolla, voit vain katsoa yläpuolella, alapuolella, 82 00:04:16,329 --> 00:04:21,160 ja vasemmalla ja oikealla puolella, löytää laatta etsit. 83 00:04:21,160 --> 00:04:24,970 >> Joten kannalta ohjelmien olemme kirjallisesti, he eivät koskaan tarpeeksi suuri 84 00:04:24,970 --> 00:04:28,580 että jotkut näistä suunnittelun päätöksiä tulevat todella haitata 85 00:04:28,580 --> 00:04:31,670 ohjelmaa tai tehdä se ajaa hitaammin, tai ehkä jopa muisti loppuu. 86 00:04:31,670 --> 00:04:35,030 Mutta olemme yhä ajaa te kirjoittaa niin tyylikäs ja 87 00:04:35,030 --> 00:04:36,450 tehokasta koodia kuin mahdollista. 88 00:04:36,450 --> 00:04:39,910 >> Joten jos et päätyä kirjallisesti asioita että on huomattavasti suurempi 89 00:04:39,910 --> 00:04:44,660 soveltamisalaan, ne kirjoitetaan hyvä suunnitella sen lisäksi, että oikea. 90 00:04:44,660 --> 00:04:46,300 Niin monet teistä toi, että ulos. 91 00:04:46,300 --> 00:04:48,560 Se on jotain, jota etsimme - jotain aiomme jatkaa 92 00:04:48,560 --> 00:04:49,840 painostaa teitä kaverit. 93 00:04:49,840 --> 00:04:52,460 >> Jos sinulle tulee kysyttävää suunnittelu oman ohjelman, rohkeasti 94 00:04:52,460 --> 00:04:56,870 tavoittaa minua, ja olen onnellinen käydä läpi ohjelman kanssasi, 95 00:04:56,870 --> 00:05:01,320 ja esille joitakin suunnittelu päätöksiä olet tehnyt, ja antaa teille joitakin 96 00:05:01,320 --> 00:05:06,240 ehdotuksia siitä, miten tehdä vielä paremman suunnittelun päätöksiä. 97 00:05:06,240 --> 00:05:08,870 >> Joten aiomme siirtyä puhumme Quiz 0. 98 00:05:08,870 --> 00:05:11,300 Ennen kuin teemme, että ei kukaan on kysyttävää siitä, mitä 99 00:05:11,300 --> 00:05:14,252 Olen kattaa tähän mennessä? 100 00:05:14,252 --> 00:05:21,500 >> [Kahina NOISE] 101 00:05:21,500 --> 00:05:22,750 >> JASON HIRSCHHORN: Seitsemän sekuntia. 102 00:05:22,750 --> 00:05:23,250 OK. 103 00:05:23,250 --> 00:05:24,970 Puhutaanpa Quiz 0 vähän. 104 00:05:24,970 --> 00:05:26,700 Useimmat sinulla on Quiz 0 selkään. 105 00:05:26,700 --> 00:05:29,820 Jos et, toivottavasti muistat sen vähän. 106 00:05:29,820 --> 00:05:34,770 Mutta jos olet ottanut Quiz 0, niin pääsevät myös PDF verkossa 107 00:05:34,770 --> 00:05:35,890 näytteen ratkaisuja. 108 00:05:35,890 --> 00:05:39,480 >> Onko kellään mitään kysyttävää ennen hyppäämme viikon materiaalia 109 00:05:39,480 --> 00:05:41,520 erityisiä ongelmia Quiz 0 - 110 00:05:41,520 --> 00:05:44,630 miksi vastaus on, mitä se on? 111 00:05:44,630 --> 00:05:47,255 Onko kukaan hämmentynyt mitään? 112 00:05:47,255 --> 00:05:50,230 Vaikka sinulla ongelmia oikea, mutta vain haluaisi minun selittää sitä vähän 113 00:05:50,230 --> 00:05:52,640 enemmän, olen mielelläni nyt. 114 00:05:52,640 --> 00:05:57,800 >> Joten olen pyytänyt sinua kaverit valmistautumaan joidenkin 115 00:05:57,800 --> 00:05:59,440 ajatuksia Quiz 0. 116 00:05:59,440 --> 00:06:02,660 Joten, jotka haluaisivat saada meidät alkoi Kysymykseni tai 117 00:06:02,660 --> 00:06:04,655 kommentoida Quiz 0? 118 00:06:04,655 --> 00:06:07,435 119 00:06:07,435 --> 00:06:10,410 >> [PAPER kahina] 120 00:06:10,410 --> 00:06:11,470 >> JASON HIRSCHHORN: Kaikki eivät teki täydellisesti. 121 00:06:11,470 --> 00:06:12,720 Tiedän siis [LAUGHS] 122 00:06:12,720 --> 00:06:15,950 siellä täytyy olla joitakin kysymyksiä noin 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 Kyllä. 126 00:06:29,210 --> 00:06:29,600 Ompica. 127 00:06:29,600 --> 00:06:30,520 >> OMPICA: Numero 10. 128 00:06:30,520 --> 00:06:33,560 >> JASON HIRSCHHORN: Numero 10. 129 00:06:33,560 --> 00:06:35,400 Kumpi oli numero 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: kuuluu - 133 00:06:37,670 --> 00:06:40,060 134 00:06:40,060 --> 00:06:42,180 >> JASON HIRSCHHORN: Numero 10 oli kahdeksan i - kirjallisesti kahdeksan i? 135 00:06:42,180 --> 00:06:42,980 >> OMPICA: Joo. 136 00:06:42,980 --> 00:06:43,630 >> JASON HIRSCHHORN: OK. 137 00:06:43,630 --> 00:06:47,390 Joten toinen kysymys sinulla voisi olla kysyi oli minun kaukonäköisiä? 138 00:06:47,390 --> 00:06:48,630 Vastaus on kyllä. 139 00:06:48,630 --> 00:06:52,060 Kohdassa ennen tietokilpailu, kysyin te koodata sekä Sterling ja 140 00:06:52,060 --> 00:06:52,980 kahdeksasta i. 141 00:06:52,980 --> 00:06:54,770 Molemmat tapahtunut näkyvät tietokilpailu. 142 00:06:54,770 --> 00:06:57,510 Joten toivottavasti olet maksanut huomiota tähän. 143 00:06:57,510 --> 00:07:02,520 >> Ja jos olisit, niin olisit luultavasti tehty hyvin näihin kahteen. 144 00:07:02,520 --> 00:07:06,030 Mutta kahdeksasta i, emme oikeastaan ​​koodi se luokassa, mutta se oli jälleen 145 00:07:06,030 --> 00:07:07,500 kysyttiin tietokilpailu. 146 00:07:07,500 --> 00:07:13,270 Joten pari asiaa ottaa Huomaa kun koodaus kahdeksan i. 147 00:07:13,270 --> 00:07:17,320 Ensimmäinen asia, per kysymys, oli että sinun piti tarkistaa, jos merkkijono 148 00:07:17,320 --> 00:07:20,300 vastasi null. 149 00:07:20,300 --> 00:07:28,060 >> Pari ihmiset yrittivät tarkistaa myöhemmin Ohjelmaan jos s kiinnike olin - 150 00:07:28,060 --> 00:07:30,940 joten erityisluonnetta, että string - oli sama null. 151 00:07:30,940 --> 00:07:35,600 Mutta muista, että null on pohjimmiltaan - se on hyvä ajatella 152 00:07:35,600 --> 00:07:39,100 null kuin nolla osoitin - osoitin nollaan - 153 00:07:39,100 --> 00:07:40,920 jonnekin muistiin, jossa et voi koskaan käyttää. 154 00:07:40,920 --> 00:07:44,730 >> Joten jos jotain on yhtä suuri kuin nolla, olet tietää, että se ei ole alustettu, 155 00:07:44,730 --> 00:07:46,430 tai siellä ei ole mitään. 156 00:07:46,430 --> 00:07:50,950 Joten s on char tähden, S kiinnike i on char. 157 00:07:50,950 --> 00:07:57,410 Joten on järkevää verrata s nollaamaan, mutta ei s kiinnike i nollaksi. 158 00:07:57,410 --> 00:07:59,390 Mutta jälleen kerran - niin että oli ensimmäinen asia että sinun piti tehdä - 159 00:07:59,390 --> 00:08:03,510 varmista, että sinulla todella sai kunnon merkkijono. 160 00:08:03,510 --> 00:08:08,020 >> Seuraavaksi sinun halusi mennä läpi kunkin merkin merkkijono. 161 00:08:08,020 --> 00:08:12,500 Ja jotta olisi kuin s kiinnike Minä esimerkiksi, jos minulla on iterator. 162 00:08:12,500 --> 00:08:17,250 Ja ottaa sen merkin kohdalle ja saat sen todellista arvoa. 163 00:08:17,250 --> 00:08:21,800 Olet se tallennetaan char, mutta ASCII-arvo nolla - 164 00:08:21,800 --> 00:08:23,010 nolla merkki - 165 00:08:23,010 --> 00:08:25,450 ei itse asiassa ole kokonaisluku nolla. 166 00:08:25,450 --> 00:08:28,700 Se on joku muu luku, että voit etsiä ASCII taulukossa. 167 00:08:28,700 --> 00:08:30,790 >> Niin yksi tapa korjata, että - luultavasti paras tapa korjata 168 00:08:30,790 --> 00:08:33,760 että - on vähentävät sitä Merkki Arvo - 169 00:08:33,760 --> 00:08:35,140 nolla merkki. 170 00:08:35,140 --> 00:08:38,490 Joten miinus yksi tarjous, nolla, toinen yksi tarjous. 171 00:08:38,490 --> 00:08:44,620 Joka vie mitä numero olet kuten nieriä, ja saada se sama 172 00:08:44,620 --> 00:08:46,720 numero todellinen kokonaisluku. 173 00:08:46,720 --> 00:08:50,300 >> Ja se on hyvin samankaltainen lähestymistapa paljon ihmisiä otti 174 00:08:50,300 --> 00:08:52,800 Harjoitus 2, Caesar ja Viginere - 175 00:08:52,800 --> 00:08:55,160 nämä salaus, kun pyöri niitä. 176 00:08:55,160 --> 00:08:59,210 Joten kun olet sen numeron nollasta yhdeksään, sitten - riippuen 177 00:08:59,210 --> 00:09:02,750 jos se menee perimmäinen numero - sinun täytyy moninkertaistaa sen 178 00:09:02,750 --> 00:09:04,120 jonka teho 10. 179 00:09:04,120 --> 00:09:07,340 >> Jotkut ihmiset siirtyi takaisin edessä, ja kerrotaan yksittäisten 180 00:09:07,340 --> 00:09:08,940 numero teho 10. 181 00:09:08,940 --> 00:09:11,160 Jotkut ihmiset siirtyi edestä taakse - 182 00:09:11,160 --> 00:09:14,430 ja niin sai suurimpia Tilauksen numerot ensin - 183 00:09:14,430 --> 00:09:18,190 ja säästäisi kuin globaali laskinmuuttuja. 184 00:09:18,190 --> 00:09:20,880 Ja sen jälkeen aina kun läpi FOR silmukka, kerrotaan, että jättiläinen maailmanlaajuinen 185 00:09:20,880 --> 00:09:25,640 laskinmuuttuja 10, jotta tilaa seuraava merkki. 186 00:09:25,640 --> 00:09:28,750 >> Joten se oli hieman sekava ilman minulle kirjallisesti taululle. 187 00:09:28,750 --> 00:09:31,550 Mutta Näyteliuosta on käytössäsi. 188 00:09:31,550 --> 00:09:32,870 Mutta ne olivat suuria asioita etsimme. 189 00:09:32,870 --> 00:09:36,400 Myös Varmista vielä, että jokainen yksilöllinen luonne oli todellakin 190 00:09:36,400 --> 00:09:39,780 merkki nollan ja yhdeksän, eikä jokin muu merkki, kuten, 191 00:09:39,780 --> 00:09:41,160 esimerkiksi. 192 00:09:41,160 --> 00:09:43,150 >> Ne olivat asioita etsimme varten tähän kysymykseen. 193 00:09:43,150 --> 00:09:46,510 194 00:09:46,510 --> 00:09:47,980 Vastaako tuo kysymykseesi? 195 00:09:47,980 --> 00:09:49,320 >> OMPICA: Joo. 196 00:09:49,320 --> 00:09:50,240 >> JASON HIRSCHHORN: OK. 197 00:09:50,240 --> 00:09:53,940 Onko muita kysymyksiä noin Quiz 0? 198 00:09:53,940 --> 00:09:55,440 Entä kokoamiseen? 199 00:09:55,440 --> 00:09:56,740 Kaikki koota oikea? 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 [LAUGHS] 203 00:10:01,010 --> 00:10:03,265 Kysyttävää tietojenkeruuprosessiin? 204 00:10:03,265 --> 00:10:06,050 205 00:10:06,050 --> 00:10:06,966 Vau. 206 00:10:06,966 --> 00:10:11,090 >> [PAPER kahina] 207 00:10:11,090 --> 00:10:11,520 >> JASON HIRSCHHORN: Kyllä. 208 00:10:11,520 --> 00:10:11,700 Michael. 209 00:10:11,700 --> 00:10:14,140 >> MICHAEL: Onko numero 7 - satunnainen? 210 00:10:14,140 --> 00:10:16,500 >> JASON HIRSCHHORN: Numero 7. 211 00:10:16,500 --> 00:10:20,670 Numero 7 oli saada satunnaisen kokonaisluvun. 212 00:10:20,670 --> 00:10:21,110 Erinomainen. 213 00:10:21,110 --> 00:10:25,630 Joten olet antanut kokonaisluku ja kokonaisluku b, ja haluat satunnainen 214 00:10:25,630 --> 00:10:28,710 kokonaisluku ja b. 215 00:10:28,710 --> 00:10:31,740 Voimme itse kirjoittaa tämä yksi aluksella, koska tämä 216 00:10:31,740 --> 00:10:33,320 oli yhtä riviä koodia - 217 00:10:33,320 --> 00:10:34,390 yksi tapa tehdä se. 218 00:10:34,390 --> 00:10:37,810 >> Joten meille annetaan drand kuin toiminto voisimme käyttää. 219 00:10:37,810 --> 00:10:38,820 Ja mitä drand - 220 00:10:38,820 --> 00:10:40,290 olettaen, että se on kylvetty - 221 00:10:40,290 --> 00:10:42,316 Mitä drand palaa? 222 00:10:42,316 --> 00:10:44,840 >> MICHAEL: float välillä 0,0 ja 1,0. 223 00:10:44,840 --> 00:10:45,530 >> JASON HIRSCHHORN: numero - joo. 224 00:10:45,530 --> 00:10:47,910 Numero välillä 0 ja 1. 225 00:10:47,910 --> 00:10:51,760 Ja niin olemme B ja. 226 00:10:51,760 --> 00:10:55,480 Ja sitten meillä on satunnaislukugeneraattorimme välillä 0 ja 1 antanut meille drand. 227 00:10:55,480 --> 00:11:01,480 228 00:11:01,480 --> 00:11:06,630 Jotkut ihmiset yrittivät laittaa b tai b miinus tai jotain sisällä näitä 229 00:11:06,630 --> 00:11:07,960 suluissa. 230 00:11:07,960 --> 00:11:11,210 Se tarkoittaisi, että he ovat argumentteja tätä toimintoa. 231 00:11:11,210 --> 00:11:13,450 >> drand ei ota mitään perusteluja - kuten getString ei 232 00:11:13,450 --> 00:11:14,330 ei ota mitään perusteluja. 233 00:11:14,330 --> 00:11:16,600 Joten se on vain auki paren, lähellä PAREN - ja että itse on 234 00:11:16,600 --> 00:11:17,330 funktiokutsuna. 235 00:11:17,330 --> 00:11:19,770 Ja joka antaa sinulle useita 0 ja 1 välillä. 236 00:11:19,770 --> 00:11:22,820 Tietysti meillä on koko joukko että numerot voivat olla sisään 237 00:11:22,820 --> 00:11:28,470 >> Sano, jos b on 10 ja on 5, me todella haluavat numero alueella 5. 238 00:11:28,470 --> 00:11:36,940 Joten seuraava asia, meidän täytyy tehdä, on Kerro tämä alue b miinus. 239 00:11:36,940 --> 00:11:40,380 Niin oletetaan, että on kerrottu. 240 00:11:40,380 --> 00:11:42,590 Ja että annan meille numero tietyllä alueella. 241 00:11:42,590 --> 00:11:46,610 Ja että erityiset alueen ollessa ero b miinus. 242 00:11:46,610 --> 00:11:50,030 >> Ja lopuksi, että saat vain antaa sen - sanoa välillä b miinus 243 00:11:50,030 --> 00:11:52,520 on 5, joka tulee antaa meille numero 0-5. 244 00:11:52,520 --> 00:11:56,000 Mutta jos on itse asiassa 5, meidän täytyy lisätä Tällä alueella jopa missä se on 245 00:11:56,000 --> 00:12:01,380 oikeastaan ​​pitäisi olla, lisäämällä. 246 00:12:01,380 --> 00:12:02,580 Niin että saa logiikan oikealle. 247 00:12:02,580 --> 00:12:03,745 Ja sitten, olisitko toinen kysymys? 248 00:12:03,745 --> 00:12:04,547 >> MICHAEL: Ei 249 00:12:04,547 --> 00:12:06,010 Minusta tuntuu todella tyhmä juuri nyt. 250 00:12:06,010 --> 00:12:06,405 [LAUGHS] 251 00:12:06,405 --> 00:12:06,730 >> JASON HIRSCHHORN: Ei. 252 00:12:06,730 --> 00:12:08,640 Älä tuntuu todella tyhmä. 253 00:12:08,640 --> 00:12:10,560 Joukko ihmisiä kamppaillut tätä kysymystä. 254 00:12:10,560 --> 00:12:13,920 Ja sitten, toinen kysymys on, drand, sanoit, saat float - 255 00:12:13,920 --> 00:12:14,940 palauttaa float. 256 00:12:14,940 --> 00:12:18,020 Mutta tämä toiminto itse asiassa kysyi varten kokonaisluku palautetaan. 257 00:12:18,020 --> 00:12:23,700 >> Sinun ei tarvitse heittää tätä nimenomaisesti kokonaisluku, koska nämä 258 00:12:23,700 --> 00:12:29,090 toiminta pitää sitä kaikki float - kuten liukuluku. 259 00:12:29,090 --> 00:12:31,570 Kuten tämä tahto - vaikka tämä on kokonaisluku, tämä tulee 260 00:12:31,570 --> 00:12:32,890 kerrotaan oikein. 261 00:12:32,890 --> 00:12:34,000 Kaikki kertominen toimii. 262 00:12:34,000 --> 00:12:35,060 Sinun ei tarvitse heittää sitä täällä. 263 00:12:35,060 --> 00:12:36,480 Itse asiassa, sinun ei pitäisi heittää. 264 00:12:36,480 --> 00:12:37,310 >> Että olisi - 265 00:12:37,310 --> 00:12:40,750 jos voisitte heittää numero joka on välillä 0 ja 1 - 266 00:12:40,750 --> 00:12:42,680 satunnaisluku, liukuluku - 267 00:12:42,680 --> 00:12:47,850 niin se on joko ainoastaan ​​0 tai 1, niin menetät kaiken tuon tarkkuutta. 268 00:12:47,850 --> 00:12:50,120 Mutta lopussa, kun palaat, se saa automaattisesti 269 00:12:50,120 --> 00:12:51,620 toimitetaan mahdollisimman kokonaisluku. 270 00:12:51,620 --> 00:12:56,870 Joten sinun ei tarvitse tehdä että valu itse. 271 00:12:56,870 --> 00:13:00,810 >> Joten tämä oli vastaus että kysymys, numero 7. 272 00:13:00,810 --> 00:13:02,190 Muita kysymyksiä Quiz 0? 273 00:13:02,190 --> 00:13:03,300 Joo, Annie. 274 00:13:03,300 --> 00:13:05,050 >> Annie: Milloin käytämme rekursiivinen - 275 00:13:05,050 --> 00:13:07,850 Milloin käytämme iteratiivinen silmukoita? 276 00:13:07,850 --> 00:13:10,210 >> JASON HIRSCHHORN: Milloin käytät rekursiivinen - niin yleisemmin 277 00:13:10,210 --> 00:13:14,110 plussat ja miinukset rekursio vs. iteratiivinen lähestymistapa. 278 00:13:14,110 --> 00:13:17,110 Voiko joku tarjota ammattilainen tai con? 279 00:13:17,110 --> 00:13:19,460 Please? 280 00:13:19,460 --> 00:13:20,140 Ei voi kukaan. 281 00:13:20,140 --> 00:13:22,526 Kuka voi tarjota ammattilainen tai con? 282 00:13:22,526 --> 00:13:26,963 >> [PAPER kahina] 283 00:13:26,963 --> 00:13:29,730 >> Opiskelija 1: Recursive on vähemmän koodaus - vähemmän kirjoittamiseen? 284 00:13:29,730 --> 00:13:33,170 >> JASON HIRSCHHORN: Eli yleisesti, rekursio varsinkin, toiminto - 285 00:13:33,170 --> 00:13:35,750 tai algoritmi kuin sulautua sort - joka soveltuu 286 00:13:35,750 --> 00:13:37,300 to rekursiivinen lähestymistapa - 287 00:13:37,300 --> 00:13:40,710 olisi yksinkertaisempaa koodata rekursiivisesti. 288 00:13:40,710 --> 00:13:43,940 Ja vain järkevämpää tehdä se rekursiivisesti. 289 00:13:43,940 --> 00:13:46,230 Niin että olisi ammattilainen rekursion. 290 00:13:46,230 --> 00:13:46,610 Muut? 291 00:13:46,610 --> 00:13:47,467 Joo? 292 00:13:47,467 --> 00:13:49,240 >> Opiskelija 2: Con rekursio - 293 00:13:49,240 --> 00:13:50,940 Se käyttää enemmän muistia. 294 00:13:50,940 --> 00:13:52,200 >> JASON HIRSCHHORN: Niin aivan oikeassa. 295 00:13:52,200 --> 00:13:55,720 Rekursiivinen funktio on pitää lisätä pino kehyksiä pinoon. 296 00:13:55,720 --> 00:13:59,690 Joten jos olet toimivat paljon numeroita, ja täytyy soittaa tähän 297 00:13:59,690 --> 00:14:02,560 toimiakseen paljon, niin et varmasti vievät enemmän muistia, kun taas 298 00:14:02,560 --> 00:14:05,810 iteratiivinen lähestymistapa toimii vain laittaa yksi pino runko pinoon, koska 299 00:14:05,810 --> 00:14:08,420 kaikki tapahtuu yhden toiminnon. 300 00:14:08,420 --> 00:14:11,010 >> Muita hyviä ja huonoja puolia? 301 00:14:11,010 --> 00:14:11,500 Joo. 302 00:14:11,500 --> 00:14:12,550 >> OPISKELIJAN 3: plussat rekursion. 303 00:14:12,550 --> 00:14:15,950 Sinun ei tarvitse määritellä etukäteen, kuinka monta kertaa 304 00:14:15,950 --> 00:14:17,660 koodi täytynyt tehdä uudelleen. 305 00:14:17,660 --> 00:14:22,810 Voi olla ennalta määrätty määrä kertaa, että sinun täytyy kerrata sitten 306 00:14:22,810 --> 00:14:26,420 rekursio on parempi, koska se vie tätä tulosta. 307 00:14:26,420 --> 00:14:27,780 >> JASON HIRSCHHORN: Minusta se on totta. 308 00:14:27,780 --> 00:14:30,770 Mutta mielestäni molemmissa tapauksissa et koskaan - 309 00:14:30,770 --> 00:14:33,290 olet luultavasti saada joitakin käyttäjän syötettä. 310 00:14:33,290 --> 00:14:35,990 Tai tämä käyttötarkoitus olisi joitakin panos joka määrittää, kuinka monta kertaa se 311 00:14:35,990 --> 00:14:36,730 pitäisi ajaa. 312 00:14:36,730 --> 00:14:39,520 Joten yleensä, olisit ole vaikea koodi - vaikka iteratiivinen lähestymistapa - miten 313 00:14:39,520 --> 00:14:40,940 monta kertaa, että silmukka pitäisi hoitaa. 314 00:14:40,940 --> 00:14:46,100 315 00:14:46,100 --> 00:14:48,670 >> Oliko sinulla toista olit ajatellut, Annie? 316 00:14:48,670 --> 00:14:49,330 OK. 317 00:14:49,330 --> 00:14:51,650 Joten ne ovat luultavasti kaksi - 318 00:14:51,650 --> 00:14:54,370 suurin pro ja suurin con rekursiivinen vs. 319 00:14:54,370 --> 00:14:57,080 iteratiivinen lähestymistapa. 320 00:14:57,080 --> 00:14:57,690 OK. 321 00:14:57,690 --> 00:14:59,465 Mitään muuta Tietovisa 0? 322 00:14:59,465 --> 00:15:08,940 323 00:15:08,940 --> 00:15:09,920 >> Siirrytään. 324 00:15:09,920 --> 00:15:15,260 Tiedoston I / O. On ihana lyhyt tällä viikolla tiedoston I / O että toivottavasti 325 00:15:15,260 --> 00:15:19,270 olet katsellut useita kertaa, ja ihailtu. 326 00:15:19,270 --> 00:15:22,910 Paljon työtä meni tuohon, ja olen kuullut sen on mielettömän hyödyllistä. 327 00:15:22,910 --> 00:15:25,740 Olen myös linkki tämän dian, jos sinulla ei ole ollut 328 00:15:25,740 --> 00:15:29,160 mahdollisuuden katsella sitä 10 kertaa. 329 00:15:29,160 --> 00:15:35,280 >> Joten, aiomme lyhyesti mennä yli merkittäviä toimia avaamista ja työ 330 00:15:35,280 --> 00:15:38,400 tiedostoja, ja sitten aiomme sukeltaa koodaus ongelma ennen 331 00:15:38,400 --> 00:15:40,400 tarkastelemalla ongelmaa asetettu. 332 00:15:40,400 --> 00:15:44,330 Joten jälleen, aion laittaa tähän ylös näyttö, mutta aion puhua 333 00:15:44,330 --> 00:15:47,630 Hetkinen, mitä olemme täällä tekee tiedostojen I/O-- 334 00:15:47,630 --> 00:15:49,090 mitä se tarkoittaa? 335 00:15:49,090 --> 00:15:55,280 >> Tämä tarkoittaa, että voimme luoda meidän ohjelmat, ja sitten on meidän ohjelmia 336 00:15:55,280 --> 00:16:00,370 exit, eikä ollut mitään vaikutusta maailman ulkopuolella meidän ohjelman. 337 00:16:00,370 --> 00:16:04,630 Mutta kun alamme työskennellä tiedostot - sekä lukemisen niitä ja luoda 338 00:16:04,630 --> 00:16:10,460 niistä - voimme vaikuttaa jonkin verran maailman ulkopuolella meidän ohjelman. 339 00:16:10,460 --> 00:16:15,440 >> Aivan kuten jos Microsoft Word ei pystynyt tehdä Word-asiakirjoja, sitten 340 00:16:15,440 --> 00:16:18,710 kun Microsoft Word lopettaa, kaikki työ olisi mennyt, ja se olisi 341 00:16:18,710 --> 00:16:19,740 todella hyödytön. 342 00:16:19,740 --> 00:16:23,620 Emme lopulta haluamme pystyä kirjoittaa ohjelmia, jotka voivat vaikuttaa 343 00:16:23,620 --> 00:16:31,350 ympäröivän maailman, sekä ottamalla monimutkainen tuloa - kannalta tiedostojen ja 344 00:16:31,350 --> 00:16:37,080 kautta tiedostoja, ja myös luoda mielenkiintoisia ja pakottavia lähdöt - 345 00:16:37,080 --> 00:16:39,520 suhteen eri tiedostoja. 346 00:16:39,520 --> 00:16:43,730 >> Joten siksi alamme oppia käsittelemään tiedostoja. 347 00:16:43,730 --> 00:16:47,080 Tarkemmin sanottuna, mitä teemme on seuraava. 348 00:16:47,080 --> 00:16:47,680 Se on hyvin yksinkertaista. 349 00:16:47,680 --> 00:16:51,530 On vain pari askelta, ja ne on listattu täällä tämän koodin. 350 00:16:51,530 --> 00:16:55,130 Joten aiomme käydä läpi tämän koodin rivi riviltä. 351 00:16:55,130 --> 00:16:57,630 >> Ensin näet korostettuna - 352 00:16:57,630 --> 00:17:01,330 kun olet työskennellyt tiedosto, riippumatta tiedoston tyyppi on, 353 00:17:01,330 --> 00:17:02,670 sinun täytyy avata se. 354 00:17:02,670 --> 00:17:05,130 Ja se on kehotus fopen - 355 00:17:05,130 --> 00:17:05,950 täällä. 356 00:17:05,950 --> 00:17:07,980 Lisäät tiedoston nimi. 357 00:17:07,980 --> 00:17:11,930 Jos tiedosto ei ole teidän hakemistoon, tai kansio, johon tämän ohjelman 358 00:17:11,930 --> 00:17:15,910 elämää, niin sinun on myös sisällyttää polku, jossa kyseinen tiedosto on. 359 00:17:15,910 --> 00:17:19,099 >> Me aiomme olettaa, että tämä tiedosto nimeltä "text.txt" - 360 00:17:19,099 --> 00:17:24,220 yksinkertainen teksti asiakirja - on samaan kansioon kuin tämä ohjelma on. 361 00:17:24,220 --> 00:17:26,859 Niin se on toinen asia pitää mielessä - että jos haluat avata tiedoston 362 00:17:26,859 --> 00:17:30,050 jossain muualla, todella tarvitset sisällyttää sen sijainti. 363 00:17:30,050 --> 00:17:33,520 >> Toiseksi, voit siirtää argumentti fopen, ja se on mitä haluat tehdä 364 00:17:33,520 --> 00:17:34,620 tiedoston mukana. 365 00:17:34,620 --> 00:17:38,450 On olemassa kolme pääasialliset perustelut että aiot siirtyvän fopen. 366 00:17:38,450 --> 00:17:40,060 Kuka voi antaa minulle ne kolme? 367 00:17:40,060 --> 00:17:44,960 368 00:17:44,960 --> 00:17:47,130 Kuka voi antaa minulle yksi heistä? 369 00:17:47,130 --> 00:17:48,130 Kyllä. 370 00:17:48,130 --> 00:17:50,010 >> OPISKELIJAN 4: tiedoston nimi? 371 00:17:50,010 --> 00:17:50,440 >> JASON HIRSCHHORN: Anteeksi. 372 00:17:50,440 --> 00:17:55,490 Kolme pääasialliset perustelut voit siirtää kuin toinen argumentti fopen. 373 00:17:55,490 --> 00:17:57,060 Olet oikeassa - tiedoston nimi on ensimmäinen argumentti. 374 00:17:57,060 --> 00:18:01,620 Mutta toinen argumentti fopen ovat yleensä kolme jouset, ja - kyllä. 375 00:18:01,620 --> 00:18:02,210 Aleja. 376 00:18:02,210 --> 00:18:03,490 >> Aleja: for append. 377 00:18:03,490 --> 00:18:06,840 >> JASON HIRSCHHORN:, jos haluat liittää tiedoston, joka on jo olemassa. 378 00:18:06,840 --> 00:18:07,810 >> OPISKELIJAN 5: R lukemista. 379 00:18:07,810 --> 00:18:09,930 >> JASON HIRSCHHORN: R, jos haluavat lukea tiedostosta. 380 00:18:09,930 --> 00:18:10,670 >> OPISKELIJAN 6: W kirjoittaa. 381 00:18:10,670 --> 00:18:12,840 >> JASON HIRSCHHORN: Ja w, jos halua kirjoittaa tiedostoon. 382 00:18:12,840 --> 00:18:17,570 Joten tässä tapauksessa, olemme kirjallisesti tiedostoon, joten meillä on w. 383 00:18:17,570 --> 00:18:22,360 Avaat sen, sinun on myös säästää jonnekin, ja se on kanssa 384 00:18:22,360 --> 00:18:26,000 koodin vasemmalla puolella sijoitusoperaattori - 385 00:18:26,000 --> 00:18:31,220 Olen luomassa osoitin tiedoston kutsutaan, tässä tapauksessa tiedosto. 386 00:18:31,220 --> 00:18:36,070 >> Emme aio huolehtia mitä tämä kaikki korkit FILE asia on. 387 00:18:36,070 --> 00:18:40,600 Riittää, kun sanon, se on pitkä stream nollia ja ykkösiä. 388 00:18:40,600 --> 00:18:44,970 Ja se miten aiomme käyttää sitä ja ymmärtää sitä. 389 00:18:44,970 --> 00:18:47,300 >> Seuraava asia meidän täytyy tehdä - ja Tämä on erittäin tärkeää - 390 00:18:47,300 --> 00:18:49,070 aina, kun avaat tiedoston - 391 00:18:49,070 --> 00:18:54,250 Itse asiassa, kun soitat malloc varten Esimerkiksi, ja saada jonkin verran muistia ja yrittää 392 00:18:54,250 --> 00:18:57,980 ja tallenna se osoitin, aina haluat varmista, että 393 00:18:57,980 --> 00:19:00,230 toiminto ei palannut null. 394 00:19:00,230 --> 00:19:05,230 >> Joten tässä tapauksessa, olemme Varmistamme varma, että me todellisuudessa avataan 395 00:19:05,230 --> 00:19:10,230 tiedostoa oikein, ja siellä oli ei virhettä ohjelmaamme. 396 00:19:10,230 --> 00:19:15,160 Seuraava, kun olemme tarkastetaan varmistaa että meillä on toimiva tiedoston, voimme 397 00:19:15,160 --> 00:19:18,520 kirjoittaa tai lukea, tai liittää tiedoston. 398 00:19:18,520 --> 00:19:24,270 Tässä tapauksessa olen yksinkertaisesti tulostus yksi rivi tähän tiedostoon. 399 00:19:24,270 --> 00:19:25,450 >> Miten tiedän, että? 400 00:19:25,450 --> 00:19:27,990 No, olen tämän toiminnon nimeltään fprintf. 401 00:19:27,990 --> 00:19:30,970 Kaikki toiminnot käytät kun kirjoitat, tai niiden lukeminen tai 402 00:19:30,970 --> 00:19:34,950 manipuloimalla tiedostot ovat samanlaisia toimintoja olet nähnyt ennen, mutta 403 00:19:34,950 --> 00:19:38,420 alkavat kirjaimella F, seisomaan tiedoston. 404 00:19:38,420 --> 00:19:43,440 Ja fprintf, toisin kuin meidän normaali tulosta app, ottaa yksi ylimääräinen argumentti, 405 00:19:43,440 --> 00:19:47,800 ja se on tiedosto, johon olet tulostaa tämän linjan. 406 00:19:47,800 --> 00:19:50,640 >> Minulla ei ole mitään oikeus Ohai. 407 00:19:50,640 --> 00:19:52,860 Minulla ei ole kolmas argumentti printf - 408 00:19:52,860 --> 00:19:57,030 tai toinen argumentti printf, kolmas argumentti fprintf, koska olen 409 00:19:57,030 --> 00:19:59,480 ei ole paikkamerkkejä täällä. 410 00:19:59,480 --> 00:20:01,070 En ole ollut muuttujia. 411 00:20:01,070 --> 00:20:06,070 Mutta jälleen kerran, fprintf ja kaikki nämä tiedosto toimintoja, jotka toimivat tiedostojen 412 00:20:06,070 --> 00:20:09,820 ovat yleensä menossa tiedosto johon ne toimivat. 413 00:20:09,820 --> 00:20:15,960 >> Lopuksi, viimeinen tärkeä asia tehdä, on sulkea tiedoston, aivan kuten 414 00:20:15,960 --> 00:20:19,530 kanssa - aina kun malloc jotain, haluamme vapauttaa jotain, ettemme 415 00:20:19,530 --> 00:20:22,730 on muistivuoto - haluamme sulkea tiedoston. 416 00:20:22,730 --> 00:20:28,180 Jos tämä ohjelma lähtenyt sulkematta tiedoston, kertoimet eivät ole mitään menisi 417 00:20:28,180 --> 00:20:30,050 väärä, varsinkin jos se oli pieni tiedosto. 418 00:20:30,050 --> 00:20:35,020 >> Mutta se on varmasti hyvä koodaus tyyli ja käytännössä aina sulkea tiedosto 419 00:20:35,020 --> 00:20:38,050 Kun olet valmis, käytä sitä. 420 00:20:38,050 --> 00:20:43,630 Niin, että on perustiedot tiedostojen I / O. Olet varmasti nähnyt, että ennen, tai 421 00:20:43,630 --> 00:20:45,710 Katselin sitä, että fantastinen lyhyt. 422 00:20:45,710 --> 00:20:48,410 Onko kellään mitään kysyttävää, ennen menemme joitakin käytännön koodaus 423 00:20:48,410 --> 00:20:51,800 ongelmia, tiedostojen I / O tai vaiheet Menin vain yli? 424 00:20:51,800 --> 00:21:00,198 425 00:21:00,198 --> 00:21:03,162 >> [TYPING ÄÄNET] 426 00:21:03,162 --> 00:21:04,150 >> JASON HIRSCHHORN: Pidätkö on kysymys, 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 Aion odottaa vielä seitsemän sekuntia. 430 00:21:06,746 --> 00:21:07,590 [LAUGHS] 431 00:21:07,590 --> 00:21:08,620 Se on todella hyvä vihje. 432 00:21:08,620 --> 00:21:10,750 Te vain pidä kyselemällä. 433 00:21:10,750 --> 00:21:11,660 Se on hyvä. 434 00:21:11,660 --> 00:21:12,330 OK. 435 00:21:12,330 --> 00:21:17,620 Joten meidän ensimmäinen käytännön ongelma on, me olemme menossa kopioida toiminta 436 00:21:17,620 --> 00:21:22,330 komentorivi työkalu, joka luultavasti käytetty ennen - copy - 437 00:21:22,330 --> 00:21:23,500 kopio työkalu. 438 00:21:23,500 --> 00:21:28,050 Jos kirjoitat cp ja sitten siirtää se kaksi väitteet omaan terminaaliin, voit 439 00:21:28,050 --> 00:21:28,980 kopioida tiedoston. 440 00:21:28,980 --> 00:21:31,220 Ja sitähän me aiomme kirjoittaa juuri nyt. 441 00:21:31,220 --> 00:21:35,830 >> Joten jälleen, lukemalla tämän dian, olisin voit kirjoittaa ohjelma, joka ottaa 442 00:21:35,830 --> 00:21:38,130 kaksi ja vain kaksi komentorivin perustelut - 443 00:21:38,130 --> 00:21:40,750 lähdetiedoston ja kohde tiedosto - 444 00:21:40,750 --> 00:21:44,590 ja kopioi sisällön lähde tiedosto kohdetiedostolle 445 00:21:44,590 --> 00:21:46,960 yksi tavu kerrallaan. 446 00:21:46,960 --> 00:21:48,510 Niin, että on paljon pyytää. 447 00:21:48,510 --> 00:21:52,200 >> Jälleen hyvä lähestymistapa tähän on ei mennä suoraan C-koodia, mutta 448 00:21:52,200 --> 00:21:54,280 murtaa se alas pari askelta. 449 00:21:54,280 --> 00:21:58,400 Ensinnäkin ajatella logiikka - aivan mitä pyydän sinua tekemään - 450 00:21:58,400 --> 00:22:00,620 ja ymmärtää kaikki vaiheet tähän ongelmaan. 451 00:22:00,620 --> 00:22:04,410 Ei C, vain joissakin pseudokoodit tai jopa henkinen malli 452 00:22:04,410 --> 00:22:06,030 mitä on tekeillä. 453 00:22:06,030 --> 00:22:10,050 >> Seuraava, kun olet pseudokoodina alas, selvittää, miten pseudokoodina 454 00:22:10,050 --> 00:22:14,600 karttoja työkaluja ja asioita olemme oppineet käyttämään C. 455 00:22:14,600 --> 00:22:19,070 >> Ja lopuksi, kun sinulla on kaikki, että yhdessä, voit koodin ongelma. 456 00:22:19,070 --> 00:22:23,370 Kestää 5-10 minuuttia työtä tämän ongelman. 457 00:22:23,370 --> 00:22:25,800 Laitan ohjeet takaisin ylös toiseen. 458 00:22:25,800 --> 00:22:27,990 Ja sitten me aiomme mennä yli pseudokoodina, ja koodi 459 00:22:27,990 --> 00:22:29,230 se elää ryhmänä. 460 00:22:29,230 --> 00:22:31,640 >> Jos sinulla on kysyttävää, kun olet työskennellyt tämän, rohkeasti nostaa 461 00:22:31,640 --> 00:22:34,260 kätesi, ja minä tulen ympäri ja vastata niihin. 462 00:22:34,260 --> 00:22:37,020 463 00:22:37,020 --> 00:22:39,330 >> OPISKELIJAN 7: Voinko pyyhkäistä paperille? 464 00:22:39,330 --> 00:22:41,537 >> JASON HIRSCHHORN: Mitä kuuluu? 465 00:22:41,537 --> 00:26:46,047 466 00:26:46,047 --> 00:26:48,043 >> [TYPING ÄÄNET] 467 00:26:48,043 --> 00:26:48,730 >> JASON HIRSCHHORN: OK. 468 00:26:48,730 --> 00:26:51,710 Mennään yli pseudokoodin ensin ja niin minä annan sinulle pari enemmän 469 00:26:51,710 --> 00:26:52,960 minuutteja koodausta. 470 00:26:52,960 --> 00:26:55,540 471 00:26:55,540 --> 00:26:58,650 >> Kuka haluaisi aloittaa minut pois ensimmäisen linjan 472 00:26:58,650 --> 00:27:00,030 pseudokoodi tätä toimintoa? 473 00:27:00,030 --> 00:27:03,330 474 00:27:03,330 --> 00:27:05,740 >> OPISKELIJAN 8: Varmista, että saitte kaksi tiedostoa. 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 jos emme ole? 478 00:27:22,990 --> 00:27:25,974 >> OPISKELIJAN 8: palaisin 0. 479 00:27:25,974 --> 00:27:27,872 >> JASON HIRSCHHORN: Pitäisikö meidän palata 0? 480 00:27:27,872 --> 00:27:30,182 >> OPISKELIJAN 8: Return - 481 00:27:30,182 --> 00:27:30,650 pimennyksen. 482 00:27:30,650 --> 00:27:30,850 Anteeksi. 483 00:27:30,850 --> 00:27:31,210 >> JASON HIRSCHHORN: Joo. 484 00:27:31,210 --> 00:27:32,710 Todennäköisesti ei 0. 485 00:27:32,710 --> 00:27:34,680 Koska 0 tarkoittaa, kaikki oli hyvää. 486 00:27:34,680 --> 00:27:35,030 OK. 487 00:27:35,030 --> 00:27:36,730 Niin, että ensimmäinen rivi of pseudokoodina. 488 00:27:36,730 --> 00:27:38,715 Kenellä on toisella rivillä pseudokoodina? 489 00:27:38,715 --> 00:27:40,630 >> OPISKELIJAN 9: Avaa molemmat tiedostot? 490 00:27:40,630 --> 00:27:41,880 >> JASON HIRSCHHORN: Avaa molemmat tiedostot. 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 >> OPISKELIJAN 10: Tarkista jos tiedosto on NULL? 494 00:27:52,850 --> 00:28:10,906 495 00:28:10,906 --> 00:28:12,580 >> JASON HIRSCHHORN: Tarkista, Varmista kumpikaan ei ole NULL. 496 00:28:12,580 --> 00:28:15,800 Sivuhuomautuksena - 497 00:28:15,800 --> 00:28:17,540 slash 0 - 498 00:28:17,540 --> 00:28:18,887 on se, että NULL? 499 00:28:18,887 --> 00:28:20,080 >> OPISKELIJAN 11: Ei. 500 00:28:20,080 --> 00:28:21,190 >> JASON HIRSCHHORN: Tuo ei ole NULL. 501 00:28:21,190 --> 00:28:23,400 Tätä kutsutaan NULL terminaattori. 502 00:28:23,400 --> 00:28:25,580 Se on myös kirjoitettu vain yhdellä l. 503 00:28:25,580 --> 00:28:28,580 Joten tarkistaa jotain vastaan ​​- että on oikeastaan ​​merkki - 504 00:28:28,580 --> 00:28:31,710 joten tarkkailun jotain vastaan, joka on ei ole sama kuin tarkistaa, jos se 505 00:28:31,710 --> 00:28:32,690 on yhtä suuri kuin NULL. 506 00:28:32,690 --> 00:28:34,100 >> Ja jotkut ihmiset - 507 00:28:34,100 --> 00:28:36,040 heidän tietokilpailuja ja niiden ongelma sarjaa - ovat saaneet 508 00:28:36,040 --> 00:28:36,890 kaksi näistä sekava. 509 00:28:36,890 --> 00:28:38,830 Mutta kaksi näistä ovat itse asiassa eri. 510 00:28:38,830 --> 00:28:40,220 Yksi päättyy merkkijono - 511 00:28:40,220 --> 00:28:43,210 yksi on osoitin 0. 512 00:28:43,210 --> 00:28:46,490 >> OPISKELIJAN 12: Miksi et tarkista Varmista, että tiedostot eivät ole NULL 513 00:28:46,490 --> 00:28:48,670 ennen kuin avaat ne? 514 00:28:48,670 --> 00:28:54,772 >> JASON HIRSCHHORN: niin avoin säästää jotain kyseisessä tiedostossa. 515 00:28:54,772 --> 00:28:57,780 Ja jos menet takaisin - 516 00:28:57,780 --> 00:28:59,520 joten tämä linja - fopen - 517 00:28:59,520 --> 00:29:05,300 antaa sinulle osoitteen ja tallentaa että osoite tiedosto, jos se toimii. 518 00:29:05,300 --> 00:29:07,650 Jos se ei toimi, se tallentaa NULL - 519 00:29:07,650 --> 00:29:08,020 >> OPISKELIJAN 12: Oh. 520 00:29:08,020 --> 00:29:08,180 OK. 521 00:29:08,180 --> 00:29:08,500 Sain sinut. 522 00:29:08,500 --> 00:29:09,050 >> JASON HIRSCHHORN: In file. 523 00:29:09,050 --> 00:29:11,990 Joten et voi tarkistaa NULL ennen kuin olet avannut niitä. 524 00:29:11,990 --> 00:29:13,520 NULL tarkoittaa jotain ei toimi oikein. 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 Joten varmista, että kumpikaan ei ole? 528 00:29:22,590 --> 00:29:23,200 Vai? 529 00:29:23,200 --> 00:29:23,770 Mitä ajattelet? 530 00:29:23,770 --> 00:29:24,310 Menemme kanssa. 531 00:29:24,310 --> 00:29:24,520 >> OPISKELIJAN 13: Onko. 532 00:29:24,520 --> 00:29:25,020 >> JASON HIRSCHHORN: Onko? 533 00:29:25,020 --> 00:29:25,930 Kumpikaan on? 534 00:29:25,930 --> 00:29:26,350 >> OPISKELIJAN 13: Onko. 535 00:29:26,350 --> 00:29:26,390 >> JASON HIRSCHHORN: OK. 536 00:29:26,390 --> 00:29:28,510 Meillä näyttäisi olevan jonkinlainen yksimielisyys siitä. 537 00:29:28,510 --> 00:29:30,520 Kumpikaan ei ole NULL. 538 00:29:30,520 --> 00:29:32,250 OK, seuraava rivi pseudokoodina. 539 00:29:32,250 --> 00:29:33,600 Joka ei ole antanut minulle linja vielä? 540 00:29:33,600 --> 00:29:37,350 541 00:29:37,350 --> 00:29:38,295 Me odottaa sinua. 542 00:29:38,295 --> 00:29:39,020 Joo. 543 00:29:39,020 --> 00:29:40,895 >> OPISKELIJAN 14: Sinun täytyy lukea ensimmäisestä tiedostosta? 544 00:29:40,895 --> 00:29:42,290 >> JASON HIRSCHHORN: OK. 545 00:29:42,290 --> 00:29:46,240 >> OPISKELIJAN 14: Tai käytämme fscanf tai jotain ensimmäisen tiedoston? 546 00:29:46,240 --> 00:29:50,650 >> JASON HIRSCHHORN: Eli haluamme luetaan ensimmäisen tiedoston ja - 547 00:29:50,650 --> 00:29:51,900 laitetaan että täällä. 548 00:29:51,900 --> 00:30:00,600 549 00:30:00,600 --> 00:30:01,880 Lue lähdetiedostosta. 550 00:30:01,880 --> 00:30:05,370 Ja sitten, mitä me teemme, kun olemme lukea lähdetiedoston? 551 00:30:05,370 --> 00:30:06,620 Joku muu? 552 00:30:06,620 --> 00:30:09,150 553 00:30:09,150 --> 00:30:12,190 >> OPISKELIJAN 15: Kirjoita osaksi määränpää tiedosto? 554 00:30:12,190 --> 00:30:22,080 555 00:30:22,080 --> 00:30:25,620 >> JASON HIRSCHHORN: Kirjoitamme kohde tiedosto, ja - 556 00:30:25,620 --> 00:30:26,210 OK. 557 00:30:26,210 --> 00:30:30,030 Mitä muuta me puuttuu? 558 00:30:30,030 --> 00:30:32,460 Joku muu, joka ei ole antanut minulle koodiriviä vielä - ja pseudokoodina. 559 00:30:32,460 --> 00:30:33,510 Joo. 560 00:30:33,510 --> 00:30:36,540 >> OPISKELIJAN 16: Ehkä voit aina tarkistaa onko jotain luettavaa, 561 00:30:36,540 --> 00:30:37,970 kuten seuraavalle riville? 562 00:30:37,970 --> 00:30:39,550 Jotka ovat kuin seuraavalle riville katso jos se on olemassa. 563 00:30:39,550 --> 00:30:40,660 >> [Äänimerkin] 564 00:30:40,660 --> 00:30:41,095 >> JASON HIRSCHHORN: Oho. 565 00:30:41,095 --> 00:30:43,120 Se on minun kirjaaminen ohjelmisto. 566 00:30:43,120 --> 00:30:43,580 Joo? 567 00:30:43,580 --> 00:30:44,960 >> OPISKELIJAN 16: Joo. 568 00:30:44,960 --> 00:30:48,940 >> JASON HIRSCHHORN: Joten antaa se minulle vielä kerran. 569 00:30:48,940 --> 00:30:51,640 >> OPISKELIJAN 16: Tarkista, onko olemassa vielä ensi linjan 570 00:30:51,640 --> 00:30:52,920 lähdetiedosto lukea. 571 00:30:52,920 --> 00:30:53,500 >> JASON HIRSCHHORN: OK. 572 00:30:53,500 --> 00:30:56,060 Joten emme rivejä luettaessa - lukivat bytes täällä - 573 00:30:56,060 --> 00:30:57,590 mutta olet oikeassa. 574 00:30:57,590 --> 00:31:00,040 Haluamme lukea ja kirjoittaa, kunnes ei ole enää tavua. 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 niin nämä pitäisi oikeastaan ​​olla sisennetty vähän, koska he ovat siellä alla. 578 00:31:16,940 --> 00:31:17,470 Oikea? 579 00:31:17,470 --> 00:31:20,620 Kunnes olemme poissa tavua, aiomme lukea lähdetiedoston ja kirjoittaa 580 00:31:20,620 --> 00:31:22,160 määränpäähän tiedoston. 581 00:31:22,160 --> 00:31:24,510 >> Ja sitten, mikä on viimeinen linja pseudokoodina? 582 00:31:24,510 --> 00:31:26,380 Joku, joka ei ole antanut minulle jotain vielä. 583 00:31:26,380 --> 00:31:29,270 584 00:31:29,270 --> 00:31:30,260 >> OPISKELIJAN 17: Sulje tiedostot? 585 00:31:30,260 --> 00:31:31,510 >> JASON HIRSCHHORN: Aivan. 586 00:31:31,510 --> 00:31:36,370 587 00:31:36,370 --> 00:31:37,450 Sulje tiedostot. 588 00:31:37,450 --> 00:31:38,400 Joten ei meidän pseudokoodina. 589 00:31:38,400 --> 00:31:41,870 Aion laittaa pseudokoodina osaksi gedit, ja pari minuuttia me 590 00:31:41,870 --> 00:31:44,626 koodaa tämän yhdessä. 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 Olkaamme päästä alkuun ryhmänä. 594 00:33:58,290 --> 00:33:59,940 Nishant, minulla on uusi tiedosto. 595 00:33:59,940 --> 00:34:01,130 Olen juuri avannut tähän asti. 596 00:34:01,130 --> 00:34:01,880 Untitled Document 1. 597 00:34:01,880 --> 00:34:05,490 Mikä on ensimmäinen asia, joka minun pitäisi tehdä? 598 00:34:05,490 --> 00:34:07,040 >> Nishant: Sisällytä kirjastot? 599 00:34:07,040 --> 00:34:08,219 >> JASON HIRSCHHORN: OK. 600 00:34:08,219 --> 00:34:11,070 Mitkä kirjastot? 601 00:34:11,070 --> 00:34:17,570 >> Nishant: stdio.h, stdlib.h, uskon? 602 00:34:17,570 --> 00:34:18,000 >> JASON HIRSCHHORN: OK. 603 00:34:18,000 --> 00:34:21,592 Mikä on stdlib varten? 604 00:34:21,592 --> 00:34:23,010 >> Nishant: Unohdin. 605 00:34:23,010 --> 00:34:23,219 >> JASON HIRSCHHORN: OK. 606 00:34:23,219 --> 00:34:24,179 Niin kuuluu vakiotulosteesi. 607 00:34:24,179 --> 00:34:28,630 Mitä pitäisi tehdä jo ennen Aloitan koodaus? 608 00:34:28,630 --> 00:34:29,710 >> Nishant: Kirjoita otsikko? 609 00:34:29,710 --> 00:34:31,830 >> JASON HIRSCHHORN: Miten saan sen värinen? 610 00:34:31,830 --> 00:34:34,060 >> [Interposing ÄÄNTÄ] 611 00:34:34,060 --> 00:34:35,040 >> Nishant: Miten saat sen värinen? 612 00:34:35,040 --> 00:34:38,060 >> JASON HIRSCHHORN: Miten voin värikoodit? 613 00:34:38,060 --> 00:34:38,570 >> Nishant: En tiedä. 614 00:34:38,570 --> 00:34:38,830 Oh. 615 00:34:38,830 --> 00:34:39,389 Tallenna. 616 00:34:39,389 --> 00:34:39,929 >> JASON HIRSCHHORN: Tallenna. 617 00:34:39,929 --> 00:34:40,270 Kyllä. 618 00:34:40,270 --> 00:34:41,760 Haluan tallentaa sen. C. 619 00:34:41,760 --> 00:34:46,239 Niin tallenna se työpöydälle cp.c. 620 00:34:46,239 --> 00:34:47,280 Makea. 621 00:34:47,280 --> 00:34:51,199 Ja jos haluan saada täyden tyyli pistettä, mitä minun pitäisi 622 00:34:51,199 --> 00:34:53,085 kuuluvat huipulla? 623 00:34:53,085 --> 00:34:58,390 >> Nishant: Voisit kirjoittaa nimesi, nimi Ohjelman ja tarkoitus 624 00:34:58,390 --> 00:34:59,640 Ohjelman samoin? 625 00:34:59,640 --> 00:35:08,400 626 00:35:08,400 --> 00:35:10,040 >> JASON HIRSCHHORN: Näyttää hyvältä. 627 00:35:10,040 --> 00:35:10,470 Erinomainen. 628 00:35:10,470 --> 00:35:12,940 Joten olet aloittanut meidät täydellisesti. 629 00:35:12,940 --> 00:35:13,720 # Include - 630 00:35:13,720 --> 00:35:15,365 me myös kirjoittaa - 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 Joten Taidan kaikki tarkoitus mennä. 634 00:35:33,520 --> 00:35:38,003 Kuka on ensimmäinen rivi koodia minulle - tai ensimmäistä riviä koodia että 635 00:35:38,003 --> 00:35:41,280 se vie tyydyttää ensin kommentoida pseudokoodilla? 636 00:35:41,280 --> 00:35:41,985 You. 637 00:35:41,985 --> 00:35:48,780 >> OPISKELIJAN 18: Eikö sen pitäisi olla int argc, ja sitten char * argv? 638 00:35:48,780 --> 00:35:49,490 >> JASON HIRSCHHORN: Luulen olet oikeassa. 639 00:35:49,490 --> 00:35:56,270 Katsotaanpa vaihtaa sen int main, avoin paren, int argc, pilkku, char * argv? 640 00:35:56,270 --> 00:35:57,150 Pidätkö siitä? 641 00:35:57,150 --> 00:35:57,410 >> OPISKELIJAN 18: suluissa. 642 00:35:57,410 --> 00:35:58,260 >> JASON HIRSCHHORN: suluissa. 643 00:35:58,260 --> 00:35:59,860 Alkusulkumerkki, loppusulkumerkki, sulje vanhempi. 644 00:35:59,860 --> 00:36:00,240 Täydellinen. 645 00:36:00,240 --> 00:36:02,160 Nyt voin ottaa komentorivin argumentteja. 646 00:36:02,160 --> 00:36:02,430 OK. 647 00:36:02,430 --> 00:36:04,250 Varmistaa meille annetaan kaksi tiedostoa. 648 00:36:04,250 --> 00:36:07,905 Voit antaa minulle, että samoin. 649 00:36:07,905 --> 00:36:09,180 >> OPISKELIJAN 18: Jos argc - 650 00:36:09,180 --> 00:36:11,060 Tämä yksi ei ole sama 3. 651 00:36:11,060 --> 00:36:14,360 >> JASON HIRSCHHORN: Jos auki paren argc ei ole yhtä 3? 652 00:36:14,360 --> 00:36:16,970 >> OPISKELIJAN 18: Joo, palaat 1 tai mitään. 653 00:36:16,970 --> 00:36:17,460 >> JASON HIRSCHHORN: Anteeksi. 654 00:36:17,460 --> 00:36:19,120 >> OPISKELIJAN 18: Return 1 tai mitään. 655 00:36:19,120 --> 00:36:20,270 >> JASON HIRSCHHORN: Return 1. 656 00:36:20,270 --> 00:36:22,230 OK? 657 00:36:22,230 --> 00:36:22,970 Suuri. 658 00:36:22,970 --> 00:36:24,290 Avaa molemmat tiedostot. 659 00:36:24,290 --> 00:36:26,160 Kuka voi auttaa minua avaamaan molemmat tiedostot? 660 00:36:26,160 --> 00:36:28,125 Joka ei ole antanut minulle koodi vielä? 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: Niin isot F-I-L-E tähden lähde. 664 00:36:36,145 --> 00:36:39,390 665 00:36:39,390 --> 00:36:40,920 >> JASON HIRSCHHORN: Aion ottaa vokaaleja. 666 00:36:40,920 --> 00:36:41,570 Nämä ovat viileitä. 667 00:36:41,570 --> 00:36:42,716 Se on kuin Tumblr. 668 00:36:42,716 --> 00:36:44,610 >> OPISKELIJAN 18: Yhtä fopen - 669 00:36:44,610 --> 00:36:46,612 >> JASON HIRSCHHORN: Yhtä fopen? 670 00:36:46,612 --> 00:36:49,870 >> OPISKELIJAN 18: Open paren, argv, alkusulkumerkki. 671 00:36:49,870 --> 00:36:50,055 >> JASON HIRSCHHORN: Odota. 672 00:36:50,055 --> 00:36:50,240 Anteeksi. 673 00:36:50,240 --> 00:36:51,050 Open paren. 674 00:36:51,050 --> 00:36:51,456 OK. 675 00:36:51,456 --> 00:36:53,080 >> OPISKELIJAN 18: Joo. 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 >> OPISKELIJAN 18: Joo. 679 00:36:56,140 --> 00:36:58,540 Argv alkusulkumerkki 1 - 680 00:36:58,540 --> 00:36:59,730 Kyllä. 681 00:36:59,730 --> 00:37:06,470 Ja sitten pilkku ja sitten avoin kahden hengen lainaus, r, lainausmerkki, 682 00:37:06,470 --> 00:37:08,250 sulje kantatuote, puolipiste. 683 00:37:08,250 --> 00:37:09,450 >> JASON HIRSCHHORN: Makea. 684 00:37:09,450 --> 00:37:10,950 Entä toinen? 685 00:37:10,950 --> 00:37:16,030 >> OPISKELIJAN 18: Hyvin samankaltainen, mutta sen sijaan S-R-C, haluat kutsua sitä D-S-T. 686 00:37:16,030 --> 00:37:17,060 >> JASON HIRSCHHORN: Oo! 687 00:37:17,060 --> 00:37:17,772 Pidän siitä. 688 00:37:17,772 --> 00:37:20,010 >> OPISKELIJAN 18: Just D-S-T. Joo. 689 00:37:20,010 --> 00:37:23,057 Ja sitten ARGV, alkusulkumerkki, 2. 690 00:37:23,057 --> 00:37:23,200 Joo. 691 00:37:23,200 --> 00:37:26,720 Ja sitten w sijasta r. 692 00:37:26,720 --> 00:37:27,620 Joo. 693 00:37:27,620 --> 00:37:29,630 >> JASON HIRSCHHORN: Great. 694 00:37:29,630 --> 00:37:31,360 Seuraava pari riviä. 695 00:37:31,360 --> 00:37:34,040 Lisäksi, jos joku on asioita lisätä linjat, jotka olemme tehneet, rohkeasti 696 00:37:34,040 --> 00:37:35,690 lisätä ne samoin. 697 00:37:35,690 --> 00:37:37,520 Varmista kumpikaan ei ole NULL. 698 00:37:37,520 --> 00:37:41,450 Kuka voi antaa minulle koodin minun täytyy tyydyttää, että linja pseudokoodina? 699 00:37:41,450 --> 00:37:44,430 700 00:37:44,430 --> 00:37:45,870 Archer. 701 00:37:45,870 --> 00:37:58,645 >> ARCHER: Jos src vastaa tasavertaisina NULL tai DST vastaa tasavertaisina 702 00:37:58,645 --> 00:38:04,590 NULL, sitten palaat - 703 00:38:04,590 --> 00:38:07,130 704 00:38:07,130 --> 00:38:07,976 >> JASON HIRSCHHORN: Mitä? 705 00:38:07,976 --> 00:38:08,890 >> ARCHER: Return 2? 706 00:38:08,890 --> 00:38:09,760 >> JASON HIRSCHHORN: Return 2. 707 00:38:09,760 --> 00:38:14,400 Joten jos se on auki paren src vastaa vastaa NULL, tai - 708 00:38:14,400 --> 00:38:15,590 mitä se thing's - putki? 709 00:38:15,590 --> 00:38:16,346 Putki? 710 00:38:16,346 --> 00:38:17,140 Me kutsumme sitä putken. 711 00:38:17,140 --> 00:38:22,340 Putki, putki, dst vastaa tasavertaisina NULL, palaa 2. 712 00:38:22,340 --> 00:38:23,900 OK? 713 00:38:23,900 --> 00:38:26,060 Kunnes olemme ulkona tavua - 714 00:38:26,060 --> 00:38:29,820 me tavallaan ohitetaan tämän vaiheen pseudokoodina osa menossa täällä. 715 00:38:29,820 --> 00:38:31,970 >> Mutta ennen kuin olemme ulkona tavua - mitä se kuulostaa? 716 00:38:31,970 --> 00:38:34,680 Minkälaista C rakenne - 717 00:38:34,680 --> 00:38:36,160 mutta en käytä sanaa rakennetta, koska aiomme alkaa käyttää 718 00:38:36,160 --> 00:38:37,350 että muissa tapauksissa - 719 00:38:37,350 --> 00:38:39,495 mutta C työkalu Kuulostaako? 720 00:38:39,495 --> 00:38:39,970 >> OPISKELIJAN 19: silmukka. 721 00:38:39,970 --> 00:38:40,980 >> JASON HIRSCHHORN: silmukka. 722 00:38:40,980 --> 00:38:43,060 Kuulostaa silmukka. 723 00:38:43,060 --> 00:38:49,670 Eli kuka voi antaa minulle ensimmäinen rivi silmukan koodi täällä? 724 00:38:49,670 --> 00:38:56,320 725 00:38:56,320 --> 00:39:01,980 Voit myös valita, millaisia loop haluat, jos annat minulle 726 00:39:01,980 --> 00:39:03,215 tämä rivi koodia. 727 00:39:03,215 --> 00:39:04,150 On kolmenlaisia. 728 00:39:04,150 --> 00:39:06,530 Saat valita. 729 00:39:06,530 --> 00:39:08,080 Ehdotan yksi niistä. 730 00:39:08,080 --> 00:39:08,410 Avi. 731 00:39:08,410 --> 00:39:09,230 Kumpaa haluat? 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 on nolla. 735 00:39:15,180 --> 00:39:17,360 >> JASON HIRSCHHORN: OK. 736 00:39:17,360 --> 00:39:18,570 >> AVI: Tämä osa En ole varma. 737 00:39:18,570 --> 00:39:29,080 Mutta i on pienempi kuin koko Star lähde? 738 00:39:29,080 --> 00:39:31,128 En ole varma siitä. 739 00:39:31,128 --> 00:39:32,580 >> JASON HIRSCHHORN: OK. 740 00:39:32,580 --> 00:39:35,870 >> AVI: Koska haluat kokoisia tiedostoja, eikö? 741 00:39:35,870 --> 00:39:41,090 >> JASON HIRSCHHORN: Eli tämä luultavasti ei antaa meille koko varsinaisen 742 00:39:41,090 --> 00:39:43,010 tiedoston tavuina. 743 00:39:43,010 --> 00:39:47,680 Joten mitä muuta voisimme tehdä? 744 00:39:47,680 --> 00:39:48,810 Mikä on toinen silmukka? 745 00:39:48,810 --> 00:39:50,180 Vai pitäisikö pitäydymme varten silmukka? 746 00:39:50,180 --> 00:39:55,350 747 00:39:55,350 --> 00:39:57,900 >> OPISKELIJAN 20: Osaatko ääntää while-silmukka? 748 00:39:57,900 --> 00:40:01,350 Ja sitten, mitä haluat tehdä, on Olisit - 749 00:40:01,350 --> 00:40:03,930 koska meillä char * tiedosto. 750 00:40:03,930 --> 00:40:07,950 Joten jos me vain pitää monesko että kunnes olimme löytää NULL merkin 751 00:40:07,950 --> 00:40:08,500 loppu? 752 00:40:08,500 --> 00:40:11,130 Tai no, on se, että ei ole, miten tiedostot toimivat? 753 00:40:11,130 --> 00:40:14,300 >> JASON HIRSCHHORN: jotta voimme pitää monesko char * 754 00:40:14,300 --> 00:40:16,340 kunnes löydämme NULL - 755 00:40:16,340 --> 00:40:18,580 >> OPISKELIJAN 20: Pohjimmiltaan pitää käynnissä merkki kerrallaan, kunnes osuimme 756 00:40:18,580 --> 00:40:21,250 tiedoston loppuun. 757 00:40:21,250 --> 00:40:21,600 >> JASON HIRSCHHORN: Kyllä. 758 00:40:21,600 --> 00:40:22,560 Niin, että mitä haluamme tehdä. 759 00:40:22,560 --> 00:40:24,545 Haluamme pitää käsittelyssä, luonne merkiltä, ​​kunnes saamme 760 00:40:24,545 --> 00:40:25,080 tiedoston loppuun. 761 00:40:25,080 --> 00:40:25,375 >> OPISKELIJAN 20: Joo. 762 00:40:25,375 --> 00:40:25,860 Etsi - 763 00:40:25,860 --> 00:40:28,540 mikä on lopussa tai stop-merkin lopussa tekstitiedosto. 764 00:40:28,540 --> 00:40:28,620 >> JASON HIRSCHHORN: OK. 765 00:40:28,620 --> 00:40:30,140 Joten kun pääsemme tiedoston loppuun - Mistä tiedämme, olemme saavuttaneet 766 00:40:30,140 --> 00:40:33,200 loppuun tiedoston? 767 00:40:33,200 --> 00:40:34,710 Jos Soitan - 768 00:40:34,710 --> 00:40:35,910 joten katsotaanpa askel taaksepäin. 769 00:40:35,910 --> 00:40:37,550 Mikä on funktio? 770 00:40:37,550 --> 00:40:39,360 Mennään tätä linjaa täällä. 771 00:40:39,360 --> 00:40:40,630 Lue lähdetiedostosta. 772 00:40:40,630 --> 00:40:41,880 Kuka voi antaa minulle Koodirivin? 773 00:40:41,880 --> 00:40:45,592 774 00:40:45,592 --> 00:40:47,590 >> OPISKELIJAN 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 Mitä jos haluan lukea, hyvin Erityisesti yksi tavu? 778 00:40:52,240 --> 00:40:55,012 779 00:40:55,012 --> 00:40:56,860 >> OPISKELIJAN 21: En tiedä. 780 00:40:56,860 --> 00:40:57,110 >> JASON HIRSCHHORN: OK. 781 00:40:57,110 --> 00:40:59,380 Jopa helpompaa kuin fscanf - mikä on - 782 00:40:59,380 --> 00:41:01,890 Haluan lukea lähdetiedoston? 783 00:41:01,890 --> 00:41:03,720 Lukea lähdetiedoston. 784 00:41:03,720 --> 00:41:04,850 Mikä on toiminto - Joo. 785 00:41:04,850 --> 00:41:05,380 >> OPISKELIJAN 22: Se on fread? 786 00:41:05,380 --> 00:41:06,070 >> JASON HIRSCHHORN: Fread. 787 00:41:06,070 --> 00:41:07,550 Mielestäni Pysytään että yksi nyt. 788 00:41:07,550 --> 00:41:10,380 789 00:41:10,380 --> 00:41:13,650 Millaisia ​​argumentteja ei fread kestää? 790 00:41:13,650 --> 00:41:17,410 >> OPISKELIJAN 22: Luultavasti tiedostotyyppi, ja sitten sijainti tiedoston? 791 00:41:17,410 --> 00:41:19,550 >> JASON HIRSCHHORN: Mitä voin kirjoittaa tähän selvittää, mitä tällaiset väitteet 792 00:41:19,550 --> 00:41:20,950 fread kestää? 793 00:41:20,950 --> 00:41:23,710 >> USEITA Opiskelijat: 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 Näyttää ne hengailla yhdessä. 796 00:41:25,980 --> 00:41:29,589 Joten fread vie kuinka monta argumenttia? 797 00:41:29,589 --> 00:41:30,920 >> OPISKELIJAN 23: Four. 798 00:41:30,920 --> 00:41:32,690 >> JASON HIRSCHHORN: Kestää neljä argumenttia. 799 00:41:32,690 --> 00:41:41,100 Se vie osoitin, koko, ja että asia, joka on outo, ja jotkut tiedosto. 800 00:41:41,100 --> 00:41:42,000 OK? 801 00:41:42,000 --> 00:41:43,990 Katsotaanpa lukea siitä täällä. 802 00:41:43,990 --> 00:41:49,370 "Toiminto fread lukee n memb elementtejä tietojen kunkin koon tavua 803 00:41:49,370 --> 00:41:53,840 pitkä, purosta osoitteen sivulle stream, tallentaa ne paikkaan 804 00:41:53,840 --> 00:41:56,170 antama osoitin. " 805 00:41:56,170 --> 00:41:57,960 >> Joten neljä argumenttia. 806 00:41:57,960 --> 00:42:04,510 Miksi en vain kopioida tämän, ja liitä se täällä. 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 Eli kuka voi aloittaa täyttämällä nämä väitteet minulle? 810 00:42:13,673 --> 00:42:15,840 Avi. 811 00:42:15,840 --> 00:42:17,720 >> AVI: Ota mitätön. 812 00:42:17,720 --> 00:42:20,530 Laita vain src. 813 00:42:20,530 --> 00:42:23,142 Ota osoitin ja tähti. 814 00:42:23,142 --> 00:42:26,102 Laita src. 815 00:42:26,102 --> 00:42:27,050 Sitten - 816 00:42:27,050 --> 00:42:28,500 >> JASON HIRSCHHORN: Joten aion lopettaa Oletko siellä, koska se on virheellinen. 817 00:42:28,500 --> 00:42:32,590 818 00:42:32,590 --> 00:42:34,710 Olet oikeassa kanssa src, mutta jossa olisi src mennä? 819 00:42:34,710 --> 00:42:35,960 >> [Interposing ÄÄNTÄ] 820 00:42:35,960 --> 00:42:38,976 821 00:42:38,976 --> 00:42:41,610 >> JASON HIRSCHHORN: sen pitäisi mene tänne. 822 00:42:41,610 --> 00:42:43,790 Se src - meidän src on tyyppiä. 823 00:42:43,790 --> 00:42:44,610 Katsotaanpa täällä. 824 00:42:44,610 --> 00:42:49,610 Tämä ei pyydä tyyppiä FILE *, me todella näkemään useimmiten niin. 825 00:42:49,610 --> 00:42:57,630 Joten tämä ei pyydä argumentti Tyyppi Tiedosto * nimeltään virta, joka on src. 826 00:42:57,630 --> 00:42:58,480 OK? 827 00:42:58,480 --> 00:43:00,410 >> Minkä kokoinen asioita tehdä haluamme lukea? 828 00:43:00,410 --> 00:43:03,340 Annoin teille tämän ongelman kuvaus. 829 00:43:03,340 --> 00:43:04,370 >> OPISKELIJAN 24: Yksi tavu kerrallaan. 830 00:43:04,370 --> 00:43:05,340 >> JASON HIRSCHHORN: Yksi tavu. 831 00:43:05,340 --> 00:43:08,205 Kuinka suuri on tavu? 832 00:43:08,205 --> 00:43:11,642 Sen koko on tavua, niin mitä voin laittaa tuolla? 833 00:43:11,642 --> 00:43:12,910 >> OPISKELIJAN 25: One. 834 00:43:12,910 --> 00:43:14,730 >> JASON HIRSCHHORN: One. 835 00:43:14,730 --> 00:43:17,020 Oikea. 836 00:43:17,020 --> 00:43:19,940 Sen koko on yksikkö tavu, joten 1 on 1 tavu. 837 00:43:19,940 --> 00:43:22,284 Kuinka monta haluan lukea kerrallaan. 838 00:43:22,284 --> 00:43:23,520 >> OPISKELIJAN 26: One? 839 00:43:23,520 --> 00:43:24,270 >> JASON HIRSCHHORN: Yksi asia. 840 00:43:24,270 --> 00:43:28,540 Haluan lukea yksi asia koosta 1, yksi purema kerrallaan. 841 00:43:28,540 --> 00:43:32,110 Ja jos laitan sen, kun olen lukenut sen? 842 00:43:32,110 --> 00:43:35,050 843 00:43:35,050 --> 00:43:36,510 >> OPISKELIJAN 27: Kohde? 844 00:43:36,510 --> 00:43:39,270 >> JASON HIRSCHHORN: Joten en voi laittaa se suoraan määränpäähän. 845 00:43:39,270 --> 00:43:40,800 >> OPISKELIJAN 28: Aiotko laittaa se kolmas osoitin? 846 00:43:40,800 --> 00:43:41,780 >> OPISKELIJAN 27: määränpäähän. 847 00:43:41,780 --> 00:43:42,270 >> JASON HIRSCHHORN: OK. 848 00:43:42,270 --> 00:43:42,630 Joo. 849 00:43:42,630 --> 00:43:46,820 >> OPISKELIJAN 29: Voit ilmoittaa jotain toimia väliaikainen varastointi aikaisemmin. 850 00:43:46,820 --> 00:43:47,350 >> JASON HIRSCHHORN: OK. 851 00:43:47,350 --> 00:43:50,080 Anna se minulle. 852 00:43:50,080 --> 00:43:53,930 >> OPISKELIJAN 29: Toinen tiedosto osoitin, ehkä? 853 00:43:53,930 --> 00:43:54,220 >> JASON HIRSCHHORN: OK. 854 00:43:54,220 --> 00:43:55,585 Joten tämä on mitätön tähden - 855 00:43:55,585 --> 00:43:57,750 se on eräänlainen tyhjiö tähti, joten se ei tarvitse olla tiedoston osoitin. 856 00:43:57,750 --> 00:44:02,520 Ja jos luen yhden tavun, jossa olisi hyvä paikka 857 00:44:02,520 --> 00:44:03,850 tallentaa yhden tavun? 858 00:44:03,850 --> 00:44:04,660 >> OPISKELIJAN 29: array? 859 00:44:04,660 --> 00:44:05,770 >> JASON HIRSCHHORN: array. 860 00:44:05,770 --> 00:44:07,730 OK. 861 00:44:07,730 --> 00:44:14,040 Ja mitä muuta on jotain, joka on vain koko Yksi tavu? 862 00:44:14,040 --> 00:44:16,980 863 00:44:16,980 --> 00:44:18,060 >> OPISKELIJAN 30: char *? 864 00:44:18,060 --> 00:44:18,530 >> OPISKELIJAN 29: Joo. 865 00:44:18,530 --> 00:44:19,880 >> JASON HIRSCHHORN: char * ei ole yksi tavu. 866 00:44:19,880 --> 00:44:20,440 >> OPISKELIJAN 29: char. 867 00:44:20,440 --> 00:44:21,810 >> JASON HIRSCHHORN: merkki on yksi tavu. 868 00:44:21,810 --> 00:44:22,920 Oikea? 869 00:44:22,920 --> 00:44:26,740 Joten kutsukaamme tämä puskuri on geneerinen nimi, jota käytetään näitä asioita tallentaa 870 00:44:26,740 --> 00:44:27,910 jotain väliaikaisesti. 871 00:44:27,910 --> 00:44:30,880 Joten en luoda puskuri. 872 00:44:30,880 --> 00:44:31,150 Oikea? 873 00:44:31,150 --> 00:44:32,990 Mutta se vie void *. 874 00:44:32,990 --> 00:44:38,660 Joten ehkä olet oikeassa, että se tulisi olla puskuria 0-koon. 875 00:44:38,660 --> 00:44:41,070 Joten se tallentaa yksi - 876 00:44:41,070 --> 00:44:41,280 oikealle. 877 00:44:41,280 --> 00:44:43,560 >> Koska tämä täällä - char puskuri on merkki, mutta 878 00:44:43,560 --> 00:44:45,110 tämä vie void * - 879 00:44:45,110 --> 00:44:45,870 osoitin. 880 00:44:45,870 --> 00:44:50,640 Niin voisin tehdä tätä ja nyt puskuri on osoitin. 881 00:44:50,640 --> 00:44:53,214 Mitä muuta voisin tehdä? 882 00:44:53,214 --> 00:44:55,775 >> OPISKELIJAN 31: Laita tähti vieressä char. 883 00:44:55,775 --> 00:44:58,380 >> JASON HIRSCHHORN: Voisin luoneet sen char *. 884 00:44:58,380 --> 00:45:00,216 OK. 885 00:45:00,216 --> 00:45:03,131 Mikä on toinen asia, voisin tehdä? 886 00:45:03,131 --> 00:45:04,050 Tai mennään tämän kanssa. 887 00:45:04,050 --> 00:45:05,740 Char * puskuri, niin mitä voin laittaa tänne? 888 00:45:05,740 --> 00:45:08,290 889 00:45:08,290 --> 00:45:09,310 >> OPISKELIJAN 31: Buffer. 890 00:45:09,310 --> 00:45:10,560 >> JASON HIRSCHHORN: Buffer. 891 00:45:10,560 --> 00:45:12,640 892 00:45:12,640 --> 00:45:14,500 Puskuri on osoitin char. 893 00:45:14,500 --> 00:45:19,480 Ja kyseisessä paikassa, me laitamme yksi tavu jotain olemme lukeneet. 894 00:45:19,480 --> 00:45:19,980 Joo. 895 00:45:19,980 --> 00:45:20,700 Avi. 896 00:45:20,700 --> 00:45:21,230 >> AVI: Vain nopea kysymys. 897 00:45:21,230 --> 00:45:24,440 Haluatko malloc puskuri? 898 00:45:24,440 --> 00:45:25,930 >> JASON HIRSCHHORN: Kuka voi vastata tähän kysymykseen? 899 00:45:25,930 --> 00:45:30,210 >> OPISKELIJAN 32: No, se ei oikeastaan valitse mitään juuri nyt, niin - 900 00:45:30,210 --> 00:45:32,610 >> JASON HIRSCHHORN: Mutta tee haluamme malloc sitä? 901 00:45:32,610 --> 00:45:35,600 >> OPISKELIJAN 32: Jos sinun pitäisi tehdä se, että Muuten, kai, joo, koska sinun tarvitse 902 00:45:35,600 --> 00:45:36,990 Joissakin paikka sille osoittamaan. 903 00:45:36,990 --> 00:45:38,350 >> JASON HIRSCHHORN: Onko meillä on malloc se? 904 00:45:38,350 --> 00:45:40,580 >> OPISKELIJAN 33: Jos aiot käyttää sitä ulkopuolella silmukka. 905 00:45:40,580 --> 00:45:42,524 >> JASON HIRSCHHORN: Olemmeko menossa käyttää sitä ulkopuolella silmukan? 906 00:45:42,524 --> 00:45:44,392 >> OPISKELIJAN 34: Kyllä. 907 00:45:44,392 --> 00:45:44,860 >> OPISKELIJAN 35: Odota. 908 00:45:44,860 --> 00:45:46,980 Haluammeko julistaa, että se vuonna silmukan jälkeen? 909 00:45:46,980 --> 00:45:50,100 >> JASON HIRSCHHORN: Niin kai meillä on pseudokristillisenä kun silmukka täällä, että olemme 910 00:45:50,100 --> 00:45:51,950 yrittää selvittää, että emme ole mennyt vielä. 911 00:45:51,950 --> 00:45:54,710 912 00:45:54,710 --> 00:45:56,010 Meidän ei tarvitse malloc sitä. 913 00:45:56,010 --> 00:45:59,310 Olemme toimivat tärkein, se vain menee käytettävä sisälle silmukan. 914 00:45:59,310 --> 00:46:00,540 Se ei tarvitse olla ulkopuolella. 915 00:46:00,540 --> 00:46:02,340 >> Joten se voi olla paikallinen muuttuja. 916 00:46:02,340 --> 00:46:03,925 Sinulla on osoitin paikallinen muuttuja. 917 00:46:03,925 --> 00:46:07,984 918 00:46:07,984 --> 00:46:09,590 >> OPISKELIJAN 36: Mutta se ei ole osoittaa mitään. 919 00:46:09,590 --> 00:46:11,540 >> JASON HIRSCHHORN: Ei, se ei ole alustetaan mitään. 920 00:46:11,540 --> 00:46:12,790 Mutta emme aio käyttää sitä myös. 921 00:46:12,790 --> 00:46:15,300 Aiomme laittaa jotain se ensimmäinen kerta käytämme sitä. 922 00:46:15,300 --> 00:46:16,580 Niin että tuntuu OK. 923 00:46:16,580 --> 00:46:17,780 Joten emme tarvitse malloc täällä. 924 00:46:17,780 --> 00:46:19,360 Ja mielestäni se on OK, koska 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 Meillä on fread linja. 928 00:46:27,190 --> 00:46:28,490 Tehdään seuraavalle riville. 929 00:46:28,490 --> 00:46:32,984 >> Jos haluamme kirjoittaa tiedoston, mitä on hyvä toiminto käyttää tehdä niin? 930 00:46:32,984 --> 00:46:33,770 >> OPISKELIJAN 37: fwrite? 931 00:46:33,770 --> 00:46:35,140 >> OPISKELIJAN 38: fprintf? 932 00:46:35,140 --> 00:46:36,010 >> JASON HIRSCHHORN: fprintf on yksi. 933 00:46:36,010 --> 00:46:37,260 Mikä on toinen? 934 00:46:37,260 --> 00:46:37,680 >> OPISKELIJAN 39: fwrite. 935 00:46:37,680 --> 00:46:38,510 >> JASON HIRSCHHORN: fwrite. 936 00:46:38,510 --> 00:46:41,250 Ja meidän tarkoituksiin, fwrite, jonka näimme täällä, on 937 00:46:41,250 --> 00:46:42,500 luultavasti parempi vaihtoehto. 938 00:46:42,500 --> 00:46:51,970 939 00:46:51,970 --> 00:46:53,950 Se kestää neljä perusteluihin samoin. 940 00:46:53,950 --> 00:46:57,570 Nishant, voitko antaa minulle argumentteja? 941 00:46:57,570 --> 00:47:00,570 >> Nishant: Ensimmäinen menee olevan vain puskuri. 942 00:47:00,570 --> 00:47:02,210 >> JASON HIRSCHHORN: OK. 943 00:47:02,210 --> 00:47:06,752 >> Nishant: toinen on vain olemaan 1. 944 00:47:06,752 --> 00:47:09,510 Kolmas tulee olemaan 1. 945 00:47:09,510 --> 00:47:11,470 Ja neljäs tulee olemaan dst. 946 00:47:11,470 --> 00:47:18,010 947 00:47:18,010 --> 00:47:19,550 >> JASON HIRSCHHORN: Onko kellään kysyttävää että linja? 948 00:47:19,550 --> 00:47:28,370 949 00:47:28,370 --> 00:47:29,130 Se näyttää hyvältä. 950 00:47:29,130 --> 00:47:29,590 OK. 951 00:47:29,590 --> 00:47:34,250 Joten nyt se näyttää yksi asia olemme puuttuu - itse asiassa, nyt kirjoittaa 952 00:47:34,250 --> 00:47:35,090 tämä viimeinen rivi. 953 00:47:35,090 --> 00:47:36,300 Sulje tiedostot. 954 00:47:36,300 --> 00:47:38,880 Kuka voi lopettaa meidät kirjallisesti nämä kaksi viimeistä riviä? 955 00:47:38,880 --> 00:47:39,120 Kyllä. 956 00:47:39,120 --> 00:47:39,850 Anteeksi, mikä on nimesi? 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: FSulje src ja sitten fclose kohde. 960 00:47:47,560 --> 00:47:52,430 >> JASON HIRSCHHORN: FSulje, avoin paren, src, lähellä kantatuote, puolipiste. 961 00:47:52,430 --> 00:47:53,680 Ja fclose - 962 00:47:53,680 --> 00:47:57,560 963 00:47:57,560 --> 00:47:58,090 joo? 964 00:47:58,090 --> 00:48:01,710 >> Lucy: Open suluissa, dst ja sitten puolipiste. 965 00:48:01,710 --> 00:48:02,520 >> JASON HIRSCHHORN: Great. 966 00:48:02,520 --> 00:48:04,338 Ja mitä minun pitäisi sisältyä lopussa? 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 Täytyykö minun? 970 00:48:06,820 --> 00:48:10,560 971 00:48:10,560 --> 00:48:12,590 Vain kysymys. 972 00:48:12,590 --> 00:48:14,957 Onko meillä sisällyttää return 0? 973 00:48:14,957 --> 00:48:16,240 >> USEITA Opiskelijat: Ei. 974 00:48:16,240 --> 00:48:16,430 >> JASON HIRSCHHORN: Ei. 975 00:48:16,430 --> 00:48:18,090 Tärkein tekee sen automaattisesti jos saat loppuun. 976 00:48:18,090 --> 00:48:20,580 Mutta mielestäni se on kiva sisällyttää se nimenomaisesti. 977 00:48:20,580 --> 00:48:23,860 Varsinkin kun olemme palaamassa muut asioita koko ohjelman ajan. 978 00:48:23,860 --> 00:48:24,810 OK. 979 00:48:24,810 --> 00:48:26,230 Tämä on mitä meiltä puuttuu - 980 00:48:26,230 --> 00:48:28,520 KUN mitä? 981 00:48:28,520 --> 00:48:31,630 Kuka voi ajatella noin - 982 00:48:31,630 --> 00:48:35,240 on jossain mielessä mitä asioita voisi mennä sinne? 983 00:48:35,240 --> 00:48:37,350 Vaikka se on vain joissakin pseudokoodina kuten kieli? 984 00:48:37,350 --> 00:48:41,330 >> Mitä me todella - mitä haluamme mennä saakka? 985 00:48:41,330 --> 00:48:41,980 Joo, Lucy. 986 00:48:41,980 --> 00:48:43,240 >> Lucy: tiedoston loppuun. 987 00:48:43,240 --> 00:48:44,990 >> JASON HIRSCHHORN: tiedoston loppuun. 988 00:48:44,990 --> 00:48:49,280 Niin mitä te tarkoitatte tiedoston loppuun? 989 00:48:49,280 --> 00:48:50,955 >> Lucy: Kun saavutat tiedoston loppuun, lopeta. 990 00:48:50,955 --> 00:48:51,240 >> JASON HIRSCHHORN: OK. 991 00:48:51,240 --> 00:48:53,460 Joten kun pääsemme tiedoston loppuun. 992 00:48:53,460 --> 00:48:56,893 Kuinka me tiedämme, milloin olemme saavuttaneet tiedoston loppuun? 993 00:48:56,893 --> 00:48:59,900 >> OPISKELIJAN 40: Luulen puskuri asetetaan NULL. 994 00:48:59,900 --> 00:49:01,885 >> OPISKELIJAN 41: Buffer julistetaan silmukan sisällä. 995 00:49:01,885 --> 00:49:03,670 >> JASON HIRSCHHORN: Luuletko puskuri asetetaan NULL. 996 00:49:03,670 --> 00:49:05,850 Miksi puskuri tyhjäämisen? 997 00:49:05,850 --> 00:49:10,420 >> OPISKELIJAN 40: Koska kun fread, yrität laittaa 998 00:49:10,420 --> 00:49:13,528 mitään puskuriin. 999 00:49:13,528 --> 00:49:13,980 >> JASON HIRSCHHORN: OK. 1000 00:49:13,980 --> 00:49:15,550 Joten olet ajatellut fread - 1001 00:49:15,550 --> 00:49:19,000 kun olemme lopussa tiedoston, mitä on fread aiot tehdä? 1002 00:49:19,000 --> 00:49:21,230 Luulen, että kysymys meidän täytyy selvittää. 1003 00:49:21,230 --> 00:49:21,960 Mitä fread tehdä? 1004 00:49:21,960 --> 00:49:25,640 Se laittaa NULL puskurissa, tai se tehdä jotain muuta? 1005 00:49:25,640 --> 00:49:27,510 Kuinka voimme selvittää, mitä se ei? 1006 00:49:27,510 --> 00:49:28,190 >> OPISKELIJAN 42: Man. 1007 00:49:28,190 --> 00:49:28,810 >> JASON HIRSCHHORN: Man. 1008 00:49:28,810 --> 00:49:32,280 Joten katsotaanpa tänne. 1009 00:49:32,280 --> 00:49:34,000 Return arvo. 1010 00:49:34,000 --> 00:49:39,620 On menestys, fread ja fwrite palaa kappalemäärä lukea tai kirjoittaa. 1011 00:49:39,620 --> 00:49:43,700 Tämä numero on sama kuin tavujen siirtää ainoastaan, jos koko on 1. 1012 00:49:43,700 --> 00:49:47,780 Jos virhe tai loppuun tiedosto on saavutettu, paluuarvo on 1013 00:49:47,780 --> 00:49:51,490 lyhyt osalaskumuodon tai 0. 1014 00:49:51,490 --> 00:49:57,860 >> Joten meidän tarkoituksiin, jos fread saavuttaa tiedoston loppuun, ja lukee 1015 00:49:57,860 --> 00:50:02,100 tiedoston loppuun, ei ole mitään jäljellä lukea, mitä se aio palata? 1016 00:50:02,100 --> 00:50:03,290 >> OPISKELIJAN 43: Zero? 1017 00:50:03,290 --> 00:50:04,540 >> JASON HIRSCHHORN: Mitä? 1018 00:50:04,540 --> 00:50:05,300 >> OPISKELIJAN 43: Zero? 1019 00:50:05,300 --> 00:50:05,690 >> JASON HIRSCHHORN: Zero. 1020 00:50:05,690 --> 00:50:06,940 Se tulee palata nollaan. 1021 00:50:06,940 --> 00:50:09,360 1022 00:50:09,360 --> 00:50:13,010 Joten tiedämme, että fread, kun olemme saavutti tiedoston loppuun, on menossa 1023 00:50:13,010 --> 00:50:13,690 palata nollaan. 1024 00:50:13,690 --> 00:50:17,460 Miten voimme käyttää sitä eduksemme? 1025 00:50:17,460 --> 00:50:21,733 >> AVI: Voit ilmoittaa muuttujan ulkopuolella silmukan kutsutaan tarkistaa. 1026 00:50:21,733 --> 00:50:27,040 Jos tarkastus vastaa - 1027 00:50:27,040 --> 00:50:28,190 nyt - yksi. 1028 00:50:28,190 --> 00:50:28,920 >> JASON HIRSCHHORN: OK. 1029 00:50:28,920 --> 00:50:38,050 >> AVI: Ja sitten voit laittaa IF julkilausuman heti fread sanomalla, jos 1030 00:50:38,050 --> 00:50:42,600 fread nolla - 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: Kuka voi auttaa Avi ulos? 1034 00:50:47,252 --> 00:50:49,690 1035 00:50:49,690 --> 00:50:52,410 >> AVI: Mikä arvo palauttamat fread? 1036 00:50:52,410 --> 00:50:54,060 >> JASON HIRSCHHORN: Me vain meni tuosta. 1037 00:50:54,060 --> 00:50:55,450 >> AVI: Miten te edustatte sitä? 1038 00:50:55,450 --> 00:50:57,190 >> JASON HIRSCHHORN: Niin se palaa - Katsotaanpa etsiä täällä - se palaa 1039 00:50:57,190 --> 00:50:59,340 int, joka on olennaisesti kokonaisluku. 1040 00:50:59,340 --> 00:51:02,240 1041 00:51:02,240 --> 00:51:03,410 Joten se palauttaa kokonaisluvun. 1042 00:51:03,410 --> 00:51:05,160 Ja meidän tapauksessa se palata 1 tai 0 - 1043 00:51:05,160 --> 00:51:08,760 1 jos se lukea yksi asia - yhden tavun, ja 0, jos olemme lopussa. 1044 00:51:08,760 --> 00:51:13,560 1045 00:51:13,560 --> 00:51:16,450 Joten jos fread - 1046 00:51:16,450 --> 00:51:16,855 joo? 1047 00:51:16,855 --> 00:51:20,330 >> OPISKELIJAN 45: Etkö voi vain laittaa täyden fread (puskuri, 1, 1, SRC) osaksi 1048 00:51:20,330 --> 00:51:21,660 kun silmukka? 1049 00:51:21,660 --> 00:51:26,510 >> JASON HIRSCHHORN: Eli ehdotat Näin otetaan siellä? 1050 00:51:26,510 --> 00:51:27,600 >> [Interposing ÄÄNTÄ] 1051 00:51:27,600 --> 00:51:29,520 >> JASON HIRSCHHORN: Pidä kiinni. 1052 00:51:29,520 --> 00:51:30,885 Joten olemme kynsistä siitä. 1053 00:51:30,885 --> 00:51:33,300 Eli olet ehdottaa laskemisesta fread osaksi siellä? 1054 00:51:33,300 --> 00:51:35,457 Mitä meidän pitäisi myös siirtää jos haluat tehdä? 1055 00:51:35,457 --> 00:51:36,740 >> OPISKELIJAN 45: puskuri ulkopuolella. 1056 00:51:36,740 --> 00:51:38,110 >> JASON HIRSCHHORN: Meidän pitäisi myös siirtää tämän tänne. 1057 00:51:38,110 --> 00:51:41,700 >> OPISKELIJAN 45: Mutta ei se jatkuvasti siirtää sitä eteenpäin? 1058 00:51:41,700 --> 00:51:42,950 >> [Interposing ÄÄNTÄ] 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 Joten tämä on mitä Okshar ehdotettu. 1062 00:51:50,570 --> 00:51:51,930 Luomme puskuria. 1063 00:51:51,930 --> 00:51:57,020 Me KUN fread, sitten me fwrite. 1064 00:51:57,020 --> 00:51:59,760 Ajatuksia tästä? 1065 00:51:59,760 --> 00:52:04,050 >> OPISKELIJAN 46: Ainoa kysymys on, olisi se todella suorittaa komennon fread? 1066 00:52:04,050 --> 00:52:06,175 >> JASON HIRSCHHORN: Suuri kysymys. 1067 00:52:06,175 --> 00:52:11,050 Kun olet laskemisesta funktiokutsuna sisällä kunnossa, tekee sen 1068 00:52:11,050 --> 00:52:12,300 funktiokutsua suorittaa? 1069 00:52:12,300 --> 00:52:15,760 1070 00:52:15,760 --> 00:52:17,770 Olemme nähneet esimerkkejä tästä ennen. 1071 00:52:17,770 --> 00:52:24,900 1072 00:52:24,900 --> 00:52:25,660 Oikea? 1073 00:52:25,660 --> 00:52:26,125 >> OPISKELIJAN 46: OK. 1074 00:52:26,125 --> 00:52:26,590 Joo. 1075 00:52:26,590 --> 00:52:30,140 Joten se ei suorita. 1076 00:52:30,140 --> 00:52:31,790 >> JASON HIRSCHHORN: Olemme nähneet asioita tuollaisena, jossa meillä on 1077 00:52:31,790 --> 00:52:33,550 toiminto soittaa sisällä kunnossa. 1078 00:52:33,550 --> 00:52:35,540 Tarkoittaako tämä toiminto soittaa suorittaa? 1079 00:52:35,540 --> 00:52:36,350 Kyllä. 1080 00:52:36,350 --> 00:52:37,410 Joten vastaus on kyllä. 1081 00:52:37,410 --> 00:52:41,010 Tämä toiminto soittaa tulee suorittaa. 1082 00:52:41,010 --> 00:52:42,418 Mutta jälleen kerran, on se, mitä me haluamme? 1083 00:52:42,418 --> 00:52:49,250 1084 00:52:49,250 --> 00:52:52,204 >> Mikä on yksi tapa, jolla voimme selvittää , jos se, mitä me haluamme? 1085 00:52:52,204 --> 00:52:53,470 >> USEITA Opiskelijat: Run se? 1086 00:52:53,470 --> 00:52:54,460 >> JASON HIRSCHHORN: Voisimme käyttää sitä. 1087 00:52:54,460 --> 00:52:57,500 Mutta ennen kuin teemme sen, voisimme myös järkeillä tätä kautta. 1088 00:52:57,500 --> 00:52:57,920 Jos - 1089 00:52:57,920 --> 00:53:01,920 sanoa, että meidän on yhden tavun meidän tiedostoon, me saamme tänne, 1090 00:53:01,920 --> 00:53:02,660 me saamme tämän koodin. 1091 00:53:02,660 --> 00:53:03,620 Tämä ajaa. 1092 00:53:03,620 --> 00:53:07,780 fread palaa yhden tavun ja säilytä se puskuriin. 1093 00:53:07,780 --> 00:53:11,290 Ja tämä arvioi 1, oikeassa, kun hän palaa 1. 1094 00:53:11,290 --> 00:53:12,640 >> Joten vaikka 1. 1095 00:53:12,640 --> 00:53:15,325 Tarkoittaako se, että koodin sisällä while-silmukka tulee suorittaa? 1096 00:53:15,325 --> 00:53:15,453 >> OPISKELIJAN 47: Joo. 1097 00:53:15,453 --> 00:53:16,040 Se on totta. 1098 00:53:16,040 --> 00:53:16,290 >> JASON HIRSCHHORN: Kyllä. 1099 00:53:16,290 --> 00:53:17,490 1 on totta. 1100 00:53:17,490 --> 00:53:18,240 Se ei ole 0. 1101 00:53:18,240 --> 00:53:20,360 Joten koodin sisällä täällä toteuttaa. 1102 00:53:20,360 --> 00:53:22,300 Joten me kirjoittaa, että. 1103 00:53:22,300 --> 00:53:25,340 Siirrämme takaisin tähän line jälleen. 1104 00:53:25,340 --> 00:53:26,850 Nyt meillä on - 1105 00:53:26,850 --> 00:53:28,550 Olemme lopussa meidän tiedoston. 1106 00:53:28,550 --> 00:53:30,980 Luemme lopussa meidän tiedoston, koska meillä oli vain yksi tavu siihen. 1107 00:53:30,980 --> 00:53:34,270 >> Fread palauttaa 0, varastoi jotain puskurissa. 1108 00:53:34,270 --> 00:53:35,890 Rehellisesti sanottuna en tiedä mitä se tallentaa puskurissa. 1109 00:53:35,890 --> 00:53:38,380 Voisimme ehkä etsiä nähdä, mitä se tekee. 1110 00:53:38,380 --> 00:53:40,130 Että en todellakaan tiedä. 1111 00:53:40,130 --> 00:53:43,090 Emme tiedä, kuka välittää mitä se tallentaa puskurissa? 1112 00:53:43,090 --> 00:53:44,010 Mutta se palaa 0. 1113 00:53:44,010 --> 00:53:45,440 Ja kun 0 toteuttaa? 1114 00:53:45,440 --> 00:53:49,950 1115 00:53:49,950 --> 00:53:51,180 >> KUN 0 sitä ei voida suorittaa. 1116 00:53:51,180 --> 00:53:54,030 Niin sitten jatkamme matkaa tänne. 1117 00:53:54,030 --> 00:53:58,870 Joten päästä kättä, jos tämä on koodi meidän pitäisi ajaa, tai jos me 1118 00:53:58,870 --> 00:54:00,140 pitäisi tehdä muutokset. 1119 00:54:00,140 --> 00:54:02,180 Joten jos luulet - on äänestettävä. 1120 00:54:02,180 --> 00:54:06,885 Jos luulet meidän pitäisi ajaa tätä koodia sellaisenaan, nostakaa 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 Siellä on yksi - 1124 00:54:14,315 --> 00:54:17,260 sinulla on kysymys, huoli? 1125 00:54:17,260 --> 00:54:18,080 Joo. 1126 00:54:18,080 --> 00:54:21,240 >> OPISKELIJAN 48: Kun olemme siirtyneet puskuria ulkopuolella silmukka, me 1127 00:54:21,240 --> 00:54:22,670 on malloc se? 1128 00:54:22,670 --> 00:54:23,310 >> JASON HIRSCHHORN: Suuri kysymys. 1129 00:54:23,310 --> 00:54:26,670 Kun olemme siirtyneet puskuri ulkopuolella silmukan, meidän pitää malloc se? 1130 00:54:26,670 --> 00:54:28,400 Tämä on soveltamisala kysymykseen. 1131 00:54:28,400 --> 00:54:32,130 Jos me alustaa puskuri ulkopuolella Tämän silmukan, se on olemassa 1132 00:54:32,130 --> 00:54:33,534 lenkin sisältä? 1133 00:54:33,534 --> 00:54:35,230 >> USEITA Opiskelijat: Kyllä. 1134 00:54:35,230 --> 00:54:35,580 >> JASON HIRSCHHORN: Kyllä. 1135 00:54:35,580 --> 00:54:40,100 Soveltamisalaan kuuluvat sisällä silmukan, ja todella, mitä alle sen sisälle 1136 00:54:40,100 --> 00:54:42,460 Tämän koodin, mukaan lukien asioita sisällä täällä. 1137 00:54:42,460 --> 00:54:43,930 Joten meidän ei tarvitse malloc sitä. 1138 00:54:43,930 --> 00:54:47,766 Se on paikallinen muuttuja, ja sen soveltamisala sisältää edelleen silmukka. 1139 00:54:47,766 --> 00:54:49,540 >> OPISKELIJAN 49: Tarvitsemmeko vapauttaa sitä? 1140 00:54:49,540 --> 00:54:51,770 >> JASON HIRSCHHORN: Onko meillä täytyy vapaa puskuri? 1141 00:54:51,770 --> 00:54:53,860 >> OPISKELIJAN 49: Joo, jos emme malloc. 1142 00:54:53,860 --> 00:54:55,750 >> JASON HIRSCHHORN: Onko meillä täytyy vapaa puskuri? 1143 00:54:55,750 --> 00:54:57,160 Meillä ei ole. 1144 00:54:57,160 --> 00:55:01,280 Taas, se on paikallinen muuttuja, joten meidän ei tarvitse vapauttaa sitä. 1145 00:55:01,280 --> 00:55:02,170 OK. 1146 00:55:02,170 --> 00:55:03,480 Katsotaan, mitä tapahtuu. 1147 00:55:03,480 --> 00:55:17,290 1148 00:55:17,290 --> 00:55:18,220 Joten se on alustamattomia. 1149 00:55:18,220 --> 00:55:20,830 Se oli mitä jotain, Marcus ehdotti aiemmin. 1150 00:55:20,830 --> 00:55:25,340 Meillä on siis, että virhe, muuttuva puskuri on Alustamattomia kun käytetään täällä. 1151 00:55:25,340 --> 00:55:26,590 >> Miten voimme korjata tämän? 1152 00:55:26,590 --> 00:55:29,460 1153 00:55:29,460 --> 00:55:30,960 >> OPISKELIJAN 50: malloc se? 1154 00:55:30,960 --> 00:55:31,770 >> OPISKELIJAN 51: Yhtä NULL? 1155 00:55:31,770 --> 00:55:33,000 >> OPISKELIJAN 52: Sano puskuri on yhtä kuin 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äyttää hyvältä. 1159 00:55:40,770 --> 00:55:42,410 Meillä on nyt. 1160 00:55:42,410 --> 00:55:45,630 Luodaan jotain yritä kopioida. 1161 00:55:45,630 --> 00:56:08,990 1162 00:56:08,990 --> 00:56:10,490 Joten meillä on tekstitiedosto. 1163 00:56:10,490 --> 00:56:11,740 Miten voimme suorittaa tämän ohjelman? 1164 00:56:11,740 --> 00:56:14,140 1165 00:56:14,140 --> 00:56:15,472 Joo. 1166 00:56:15,472 --> 00:56:22,230 >> OPISKELIJAN 53: Voit tehdä piste slash cp, test.txt. 1167 00:56:22,230 --> 00:56:25,140 Ja sitten voit nimetä toiseen tiedostoon jotka se tallentaa osaksi. 1168 00:56:25,140 --> 00:56:25,510 >> JASON HIRSCHHORN: OK. 1169 00:56:25,510 --> 00:56:27,380 Me kutsumme sitä 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 vika. 1173 00:56:34,320 --> 00:56:35,570 Ajatuksia seg vika? 1174 00:56:35,570 --> 00:56:40,900 1175 00:56:40,900 --> 00:56:41,390 Tämä on suuri. 1176 00:56:41,390 --> 00:56:45,040 Kuinka voimme selvittää, missä seg vika on? 1177 00:56:45,040 --> 00:56:45,680 Mitä? 1178 00:56:45,680 --> 00:56:45,990 >> OPISKELIJAN 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 Otamme gdb kirjoittamalla gdb dot slash, nimi meidän ohjelman. 1182 00:56:55,300 --> 00:56:57,020 Ei komentoriviargumentteja siellä. 1183 00:56:57,020 --> 00:56:59,570 Aiomme perustaa katkeamispisteen tärkein. 1184 00:56:59,570 --> 00:57:02,190 Jos haluan aloittaa gdb, mitä teen? 1185 00:57:02,190 --> 00:57:02,730 >> OPISKELIJAN 55: R. 1186 00:57:02,730 --> 00:57:08,910 >> JASON HIRSCHHORN: R. Ja mitä sitten? 1187 00:57:08,910 --> 00:57:09,400 >> OPISKELIJAN 55: argumentteja? 1188 00:57:09,400 --> 00:57:10,650 >> JASON HIRSCHHORN: Sitten komentorivin argumentteja. 1189 00:57:10,650 --> 00:57:15,890 1190 00:57:15,890 --> 00:57:17,120 Katsotaanpa kulkea. 1191 00:57:17,120 --> 00:57:19,090 N on vain vie minut rivi riviltä. 1192 00:57:19,090 --> 00:57:21,450 Aion mennä kunnes Saan seg vika. 1193 00:57:21,450 --> 00:57:22,700 Tuolla on seg vika. 1194 00:57:22,700 --> 00:57:24,960 1195 00:57:24,960 --> 00:57:27,875 Se näyttää fread aiheuttanut minun seg vika. 1196 00:57:27,875 --> 00:57:30,570 1197 00:57:30,570 --> 00:57:32,770 Tiedän fread aiheutti minun seg vika, koska se oli 1198 00:57:32,770 --> 00:57:34,950 line me juuri suoritettua. 1199 00:57:34,950 --> 00:57:36,530 >> Ja ainoa asia, joka oli tapahtuu, että linja - 1200 00:57:36,530 --> 00:57:37,520 kaksi asiat tapahtuu. 1201 00:57:37,520 --> 00:57:40,610 Fread oli menossa, ja sitten olimme tekee joitakin kun tarkkailun. 1202 00:57:40,610 --> 00:57:44,820 Olen valmis lyömään vetoa, että KUN tarkkailun ei aiheuttaa minun seg vika. 1203 00:57:44,820 --> 00:57:46,950 Todennäköisesti, fread oli aiheuttaa minun seg vika. 1204 00:57:46,950 --> 00:57:49,260 Näen myös jotain, memcopy. 1205 00:57:49,260 --> 00:57:50,500 >> Muisti kopio. 1206 00:57:50,500 --> 00:57:53,820 Kuulostaa liikkuvat muisto yhdestä paikasta toiseen. 1207 00:57:53,820 --> 00:57:56,890 Kuulostaa jotain että tapahtuisi vuonna fread, ehkä jonkin verran muistia 1208 00:57:56,890 --> 00:57:58,910 siirtymässä täältä täältä. 1209 00:57:58,910 --> 00:58:01,740 1210 00:58:01,740 --> 00:58:03,860 Mennään läpi tätä uudelleen. 1211 00:58:03,860 --> 00:58:06,900 Miten voin aloittaa sen yli ja suorittaa sen uudelleen? 1212 00:58:06,900 --> 00:58:08,092 Joo. 1213 00:58:08,092 --> 00:58:15,140 >> OPISKELIJAN 56: Tarvitaanko laittaa et-merkki ennen puskuri? 1214 00:58:15,140 --> 00:58:17,800 >> JASON HIRSCHHORN: Joten et-merkki ennen puskuri antaisi minulle osoitteen 1215 00:58:17,800 --> 00:58:22,330 puskuri, joka on char *. 1216 00:58:22,330 --> 00:58:25,250 Juostaan ​​läpi tämän vielä kerran. 1217 00:58:25,250 --> 00:58:28,248 Miten luon läpi vielä kerran? 1218 00:58:28,248 --> 00:58:29,210 >> OPISKELIJAN 57: Voitko vain kirjoita suoritetaan uudelleen? 1219 00:58:29,210 --> 00:58:32,050 >> JASON HIRSCHHORN: Kirjoita vain juosta uudelleen. 1220 00:58:32,050 --> 00:58:33,415 Joten emme aio toteuttaa tätä linjaa. 1221 00:58:33,415 --> 00:58:36,250 1222 00:58:36,250 --> 00:58:39,240 Joten puskuri on nollaosoittimen. 1223 00:58:39,240 --> 00:58:40,490 Korjaa? 1224 00:58:40,490 --> 00:58:45,870 1225 00:58:45,870 --> 00:58:47,060 Se osoittaa - Katsotaanpa. 1226 00:58:47,060 --> 00:58:48,500 Jos meillä on - 1227 00:58:48,500 --> 00:58:50,430 piirtää nopeasti kuva tästä. 1228 00:58:50,430 --> 00:58:53,500 Voivatko kaikki nähdä, jos Kirjoitan tänne? 1229 00:58:53,500 --> 00:59:02,890 >> Niin pinon, meillä on paikallinen muuttuja ja sitä kutsutaan puskuria, ja 1230 00:59:02,890 --> 00:59:08,230 se on osoitin char. 1231 00:59:08,230 --> 00:59:10,325 Mikä osoite on tämän hiiltymän? 1232 00:59:10,325 --> 00:59:12,550 >> OPISKELIJAN 58: 0x0. 1233 00:59:12,550 --> 00:59:13,400 >> JASON HIRSCHHORN: Oikea. 1234 00:59:13,400 --> 00:59:14,200 Sitähän tämä on. 1235 00:59:14,200 --> 00:59:17,600 Täällä, sisällä puskuri on tallennettu 0x0. 1236 00:59:17,600 --> 00:59:20,480 Sitähän meillä on - setup meillä on juuri nyt. 1237 00:59:20,480 --> 00:59:27,540 Joten tämä linja, fread, laittaa jotain lähteestä missä? 1238 00:59:27,540 --> 00:59:30,560 Tähän ruutuun tai tähän ruutuun? 1239 00:59:30,560 --> 00:59:31,060 Mikä laatikko? 1240 00:59:31,060 --> 00:59:33,290 Vasen laatikko tai oikealle laatikko? 1241 00:59:33,290 --> 00:59:34,750 Tämä oikeus ruutuun. 1242 00:59:34,750 --> 00:59:38,440 >> Tästä seuraa osoitin, ja laittaa sen tänne. 1243 00:59:38,440 --> 00:59:42,620 Kun yritämme touch muistia Sijainti 0, mitä me saamme? 1244 00:59:42,620 --> 00:59:45,050 Segmentointi vika. 1245 00:59:45,050 --> 00:59:46,550 Se on virhe meillä on juuri nyt. 1246 00:59:46,550 --> 00:59:46,970 Joo. 1247 00:59:46,970 --> 00:59:48,410 >> OPISKELIJAN 59: Eikö sinulla ole laittaa tähti puskuri? 1248 00:59:48,410 --> 00:59:49,180 Vai ei? 1249 00:59:49,180 --> 00:59:50,050 For fread? 1250 00:59:50,050 --> 00:59:51,450 >> JASON HIRSCHHORN: So fread vie osoitin. 1251 00:59:51,450 --> 00:59:54,920 1252 00:59:54,920 --> 00:59:55,900 Joten se kulkee puskurissa. 1253 00:59:55,900 --> 00:59:58,980 Ja niin se tulee de-viite någonstans fread. 1254 00:59:58,980 --> 01:00:00,700 Mutta jälleen kerran, näimme, se vie osoitin. 1255 01:00:00,700 --> 01:00:02,560 Meidän ei tarvitse välittää niitä tähti puskuria. 1256 01:00:02,560 --> 01:00:05,350 Se olisi ohi se mitä on täällä. 1257 01:00:05,350 --> 01:00:07,980 Ja se luultavasti antaa meille virheen Koska olemme de-löytymistä se. 1258 01:00:07,980 --> 01:00:08,150 >> Oikea? 1259 01:00:08,150 --> 01:00:10,690 Kun me de-viittaus tähän osoitin, kun yritämme pääsyn tähän paikkaan, 1260 01:00:10,690 --> 01:00:13,140 Saamme virhe - meidän segmentointi vika. 1261 01:00:13,140 --> 01:00:15,800 So - 1262 01:00:15,800 --> 01:00:16,690 oho. 1263 01:00:16,690 --> 01:00:19,090 Aiomme lopettaa pois GDB. 1264 01:00:19,090 --> 01:00:20,160 Meidän linja - 1265 01:00:20,160 --> 01:00:22,990 Meidän ongelma - on oikeassa täällä tällä linjalla. 1266 01:00:22,990 --> 01:00:26,410 Ja se on ongelma, koska tämän linjan. 1267 01:00:26,410 --> 01:00:31,780 >> Miten voimme luoda laatikko, joka on saatavilla fread. 1268 01:00:31,780 --> 01:00:31,980 Oikea? 1269 01:00:31,980 --> 01:00:35,190 Meidän on luotava laatikko, joka on yksi tavu suuri, koko char. 1270 01:00:35,190 --> 01:00:38,590 Mutta me tarvitsemme laatikko saavutettavuuteen kun tämä toiminto suorittaa. 1271 01:00:38,590 --> 01:00:39,390 Joten missä - 1272 01:00:39,390 --> 01:00:39,640 joo. 1273 01:00:39,640 --> 01:00:40,440 Onko ideoita? 1274 01:00:40,440 --> 01:00:43,615 >> OPISKELIJAN 60: Just aseta se satunnaisia ​​luonnetta. 1275 01:00:43,615 --> 01:00:49,150 1276 01:00:49,150 --> 01:00:51,640 Tehkää char puskuri tasavertaisina luonnetta. 1277 01:00:51,640 --> 01:00:53,795 Ja sitten, kun olet puskuri siellä - 1278 01:00:53,795 --> 01:00:54,110 >> JASON HIRSCHHORN: Odota. 1279 01:00:54,110 --> 01:00:55,110 Char puskuri? 1280 01:00:55,110 --> 01:00:55,880 Joten ei tähtiä? 1281 01:00:55,880 --> 01:00:56,390 >> OPISKELIJAN 60: Joo. 1282 01:00:56,390 --> 01:00:58,560 Ota tähti. 1283 01:00:58,560 --> 01:01:00,690 Yhtä satunnainen luonne. 1284 01:01:00,690 --> 01:01:01,460 >> JASON HIRSCHHORN: OK. 1285 01:01:01,460 --> 01:01:02,420 Joten anna minulle yksi. 1286 01:01:02,420 --> 01:01:03,170 >> OPISKELIJAN 60: Like tai jotain. 1287 01:01:03,170 --> 01:01:06,160 Ja sitten kun olet puskuri siellä, käytät - 1288 01:01:06,160 --> 01:01:06,420 >> OPISKELIJAN 61: Star? 1289 01:01:06,420 --> 01:01:07,650 Voi ei, et-merkki. 1290 01:01:07,650 --> 01:01:09,000 >> OPISKELIJAN 60: Käytä et-merkki. 1291 01:01:09,000 --> 01:01:09,470 >> JASON HIRSCHHORN: OK. 1292 01:01:09,470 --> 01:01:11,320 Entä vuonna fwrite? 1293 01:01:11,320 --> 01:01:14,150 >> OPISKELIJAN 60: Käytä et-merkki uudelleen. 1294 01:01:14,150 --> 01:01:14,320 >> JASON HIRSCHHORN: Selvä. 1295 01:01:14,320 --> 01:01:20,970 Joten idea on, luomme nieriää ja laittaa jotain, ja sitten 1296 01:01:20,970 --> 01:01:22,612 kirjoittaa, että merkkiä. 1297 01:01:22,612 --> 01:01:23,760 >> OPISKELIJAN 60: Joo. 1298 01:01:23,760 --> 01:01:25,916 >> JASON HIRSCHHORN: Mitä ihmiset ajattelevat? 1299 01:01:25,916 --> 01:01:27,770 >> OPISKELIJAN 62: Se on sekava. 1300 01:01:27,770 --> 01:01:28,460 >> JASON HIRSCHHORN: OK. 1301 01:01:28,460 --> 01:01:29,760 Katsotaanpa vetää sen pois. 1302 01:01:29,760 --> 01:01:35,720 Joten tällä kertaa, aion tehdä tämän punainen pinoon täällä, ja sitten 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 Anteeksi. 1306 01:01:38,060 --> 01:01:45,930 Joten tällä kertaa meillä on jotain kutsutaan puskuri, ja se pinoon. 1307 01:01:45,930 --> 01:01:48,430 Korjaa? 1308 01:01:48,430 --> 01:01:51,520 Ja säästämme siinä, aluksi. 1309 01:01:51,520 --> 01:01:53,830 >> Sitten meillä on kehotus fread. 1310 01:01:53,830 --> 01:02:01,300 Mitä fread ei se vie tavun meidän ja sijoittaa sen jonnekin. 1311 01:02:01,300 --> 01:02:04,570 Se laittaa sen missä tahansa asia on osoittaa. 1312 01:02:04,570 --> 01:02:09,130 No, ennen kuin meillä oli tämä osoite - 1313 01:02:09,130 --> 01:02:10,250 0x0. 1314 01:02:10,250 --> 01:02:13,349 Nyt mitä osoite meillä on? 1315 01:02:13,349 --> 01:02:14,650 >> OPISKELIJAN 63: Whatever osoite puskuria. 1316 01:02:14,650 --> 01:02:15,970 >> JASON HIRSCHHORN: Whatever osoite puskuria. 1317 01:02:15,970 --> 01:02:22,370 Se on luultavasti olemaan jotain sellaista. 1318 01:02:22,370 --> 01:02:26,950 Todennäköisesti aio aloittaa b ja f, ja sitten on kuusi muuta 1319 01:02:26,950 --> 01:02:27,970 heksadesimaalilukua. 1320 01:02:27,970 --> 01:02:28,480 Ei ole väliä. 1321 01:02:28,480 --> 01:02:29,470 Jotkut osoite. 1322 01:02:29,470 --> 01:02:31,410 Ja me ohimennen, että osoite sisään 1323 01:02:31,410 --> 01:02:34,790 >> Ja aiomme laittaa meidän ainoa tavu asia kyseisessä osoitteessa. 1324 01:02:34,790 --> 01:02:38,470 Joten aiomme laittaa meidän ainoa tavu juttu täällä sisällä. 1325 01:02:38,470 --> 01:02:40,800 Ja sitten me aiomme kirjoittaa alkaen mitä ikinä täällä sisällä. 1326 01:02:40,800 --> 01:02:43,425 1327 01:02:43,425 --> 01:02:45,380 Onko kellään mitään kysyttävää siitä? 1328 01:02:45,380 --> 01:02:50,990 1329 01:02:50,990 --> 01:02:54,690 Joka ajattelee tämä koodi toimii? 1330 01:02:54,690 --> 01:02:56,020 >> Käsi ylös, jos luulet Tämä koodi toimii. 1331 01:02:56,020 --> 01:02:57,270 Sinun täytyy ottaa kantaa. 1332 01:02:57,270 --> 01:03:00,670 1333 01:03:00,670 --> 01:03:02,500 Ja joka ajattelee tämä koodi ei toimi? 1334 01:03:02,500 --> 01:03:04,610 Nosta kätesi. 1335 01:03:04,610 --> 01:03:06,750 Kaikki muut pitäisi olla nostamalla kätensä. 1336 01:03:06,750 --> 01:03:07,670 OK. 1337 01:03:07,670 --> 01:03:09,390 Michael, jossa seisot? 1338 01:03:09,390 --> 01:03:10,680 >> MICHAEL: En osaa päättää. 1339 01:03:10,680 --> 01:03:12,070 Kind of keskellä. 1340 01:03:12,070 --> 01:03:12,736 >> JASON HIRSCHHORN: Olet keskellä. 1341 01:03:12,736 --> 01:03:13,092 Valitse yksi. 1342 01:03:13,092 --> 01:03:14,400 >> MICHAEL: Otan usko ja sano se toimii. 1343 01:03:14,400 --> 01:03:14,660 >> JASON HIRSCHHORN: OK. 1344 01:03:14,660 --> 01:03:16,047 Sinulla on usko ja sanoa se toimii? 1345 01:03:16,047 --> 01:03:26,490 1346 01:03:26,490 --> 01:03:27,020 Mitä tapahtui? 1347 01:03:27,020 --> 01:03:28,270 >> [Interposing ÄÄNTÄ] 1348 01:03:28,270 --> 01:03:35,170 1349 01:03:35,170 --> 01:03:35,950 >> JASON HIRSCHHORN: Ei seg vika. 1350 01:03:35,950 --> 01:03:40,320 Kuinka voimme tarkistaa, onko kaksi asiaa ovat tasa-arvoisia? 1351 01:03:40,320 --> 01:03:42,060 Kaksi tiedostoa ovat samat. 1352 01:03:42,060 --> 01:03:43,300 >> OPISKELIJAN 64: Ero. 1353 01:03:43,300 --> 01:03:45,490 >> JASON HIRSCHHORN: Ero. 1354 01:03:45,490 --> 01:03:51,630 Ero tarkistaa erot kaksi tiedostoa, ja jos se palaa 1355 01:03:51,630 --> 01:03:52,890 mitään, he ovat samanlaisia. 1356 01:03:52,890 --> 01:03:59,030 Ja jos me avata, saamme tiedosto. 1357 01:03:59,030 --> 01:04:00,490 Joten se oli oikea ratkaisu. 1358 01:04:00,490 --> 01:04:01,780 Katsotaanpa muistella vielä kerran. 1359 01:04:01,780 --> 01:04:04,080 Me itse asiassa ei edes täytyy alustaa sen. 1360 01:04:04,080 --> 01:04:05,520 >> Olisi luultavasti näyttää vähän puhdistin, jos ei laita 1361 01:04:05,520 --> 01:04:07,680 jotain random siellä. 1362 01:04:07,680 --> 01:04:13,070 Kohta on, sinun piti luoda tilaa tallentaa jotain 1363 01:04:13,070 --> 01:04:15,530 fread ja ottaa jotain pois fwrite. 1364 01:04:15,530 --> 01:04:18,400 Ja että asia piti olla joko paikallinen muuttuja pinoon - sinua 1365 01:04:18,400 --> 01:04:19,890 voinut malloc'd tilaa. 1366 01:04:19,890 --> 01:04:23,030 >> Joten me oikeastaan ​​voisi olla kirjoitettu malloc täällä, ja 1367 01:04:23,030 --> 01:04:25,420 että olisi toiminut. 1368 01:04:25,420 --> 01:04:28,660 Ja sitten olisimme olleet tallentamiseen meidän asioita jonnekin kasaan. 1369 01:04:28,660 --> 01:04:31,940 Mutta tämä on todella, todennäköisesti kaikkein tyylikäs ratkaisu. 1370 01:04:31,940 --> 01:04:34,490 Vain luoda tilaa pinoon nämä asiat mennä. 1371 01:04:34,490 --> 01:04:37,690 1372 01:04:37,690 --> 01:04:38,990 >> Minulla olisi kaksi muuta kommenttia. 1373 01:04:38,990 --> 01:04:44,650 Jos ottaisi puolestaan ​​tässä, ja sitten saada pallon maaliin tämän, minun kommentit 1374 01:04:44,650 --> 01:04:47,400 olisi seuraavanlainen. 1375 01:04:47,400 --> 01:04:54,300 Nämä 1 on täällä, minulle, katso kuin taikaiskusta numeroita. 1376 01:04:54,300 --> 01:04:56,860 Tämä 1, mitattuna fread, järkevää. 1377 01:04:56,860 --> 01:04:59,580 Se on monia asioita lukea tai kirjoittaa. 1378 01:04:59,580 --> 01:05:03,740 >> Mutta tämä yksi täällä pitäisi luultavasti jotain muuta. 1379 01:05:03,740 --> 01:05:05,180 Joten mikä on yksi ratkaisu? 1380 01:05:05,180 --> 01:05:06,545 >> OPISKELIJAN 65: Koko tavun. 1381 01:05:06,545 --> 01:05:10,100 1382 01:05:10,100 --> 01:05:11,080 >> JASON HIRSCHHORN: Näinkö? 1383 01:05:11,080 --> 01:05:13,130 >> OPISKELIJAN 65: Koko nieriää. 1384 01:05:13,130 --> 01:05:13,820 >> JASON HIRSCHHORN: Koko nieriää. 1385 01:05:13,820 --> 01:05:15,290 Joo, tavu ei ole tyyppiä. 1386 01:05:15,290 --> 01:05:16,320 Joten koko char teoksia. 1387 01:05:16,320 --> 01:05:30,270 Meillä voisi olla, yläreunassa meidän koodi, # määritelty, että. 1388 01:05:30,270 --> 01:05:33,410 Nimeltään jotain BYTE ja se on todella char. 1389 01:05:33,410 --> 01:05:37,675 Oikeastaan ​​vielä parempi lähestymistapa olisi ollut tätä - 1390 01:05:37,675 --> 01:05:39,391 uint. 1391 01:05:39,391 --> 01:05:40,780 Kukaan tiedä, mitä se on? 1392 01:05:40,780 --> 01:05:44,388 1393 01:05:44,388 --> 01:05:44,840 >> Anteeksi. 1394 01:05:44,840 --> 01:05:46,090 Minulla on sitä taaksepäin. 1395 01:05:46,090 --> 01:05:51,620 1396 01:05:51,620 --> 01:05:52,200 Odota, ei. 1397 01:05:52,200 --> 01:05:53,450 Mihin suuntaan se menee? 1398 01:05:53,450 --> 01:05:58,071 1399 01:05:58,071 --> 01:05:59,660 Kukaan tiedä, mitä se on? 1400 01:05:59,660 --> 01:06:00,950 Joo. 1401 01:06:00,950 --> 01:06:05,650 >> OPISKELIJAN 67: tarkoitus auttaa yhtenäistää eri järjestelmistä asioita, jotka 1402 01:06:05,650 --> 01:06:08,760 on - kuten unsigned kokonaislukuja että on 8 tavua? 1403 01:06:08,760 --> 01:06:11,785 >> JASON HIRSCHHORN: Tuo Aivan oikein. 1404 01:06:11,785 --> 01:06:14,310 Eri koneilla, koko char - 1405 01:06:14,310 --> 01:06:15,180 ei yleensä merkkiä. 1406 01:06:15,180 --> 01:06:16,100 Merkkiä ovat yleensä yhden tavun. 1407 01:06:16,100 --> 01:06:19,590 Mutta koko muun datan tyypit ovat erikokoisia 32-bittinen kone 1408 01:06:19,590 --> 01:06:21,370 vs. 64-bittinen kone. 1409 01:06:21,370 --> 01:06:25,180 Uint8_t on aina 8 bittiä - 1410 01:06:25,180 --> 01:06:27,210 aina yhden tavun. 1411 01:06:27,210 --> 01:06:29,580 >> Ja minun täytyy sisällyttää että vakio int header-tiedosto. 1412 01:06:29,580 --> 01:06:35,040 Joten nyt, tämä olisi todennäköisesti ollut Paras tapa kirjoittaa tämän koodin. 1413 01:06:35,040 --> 01:06:40,160 1414 01:06:40,160 --> 01:06:41,450 Joten pääsen eroon taikanumeroita. 1415 01:06:41,450 --> 01:06:44,690 Ja minulla on myös loogisempaa kirjoita puskurin. 1416 01:06:44,690 --> 01:06:49,450 Kyse ei ole pelkästään nieriä, se on tavu, joka on mitä odotamme sen olevan. 1417 01:06:49,450 --> 01:06:53,400 >> Ja tänne, olemme todella ollut hieman vankempi. 1418 01:06:53,400 --> 01:06:55,190 Emme kutsuen sitä nieriä, joka - 1419 01:06:55,190 --> 01:06:58,630 ehkä, kuka tietää - voisi olla erilainen koko eri koneilla. 1420 01:06:58,630 --> 01:07:02,025 Olemme todella sanovat tämä on juuri yhden tavun, aina, ei väliä mitä. 1421 01:07:02,025 --> 01:07:05,810 Ja jos katsomme täällä, teemme cp. 1422 01:07:05,810 --> 01:07:08,340 Uh-oh. 1423 01:07:08,340 --> 01:07:09,590 Mitä tapahtui? 1424 01:07:09,590 --> 01:07:14,470 1425 01:07:14,470 --> 01:07:16,170 >> OPISKELIJAN 68: Voisi olla kytkettynä. 1426 01:07:16,170 --> 01:07:17,880 >> JASON HIRSCHHORN: Mitä? 1427 01:07:17,880 --> 01:07:19,130 >> OPISKELIJAN 69: Onko se? 1428 01:07:19,130 --> 01:07:21,940 1429 01:07:21,940 --> 01:07:25,080 >> OPISKELIJAN 70: Et ole määrittelevät sen tyypin. 1430 01:07:25,080 --> 01:07:28,684 >> OPISKELIJAN 71: Mutta se olisi määriteltävä standardin. 1431 01:07:28,684 --> 01:07:29,934 >> OPISKELIJAN 72: Mitä on tekeillä? 1432 01:07:29,934 --> 01:07:37,660 1433 01:07:37,660 --> 01:07:40,210 >> OPISKELIJAN 73: Pitäisikö määritellä olla isoilla kirjaimilla? 1434 01:07:40,210 --> 01:07:41,370 >> JASON HIRSCHHORN: Joten se ei ole # define. 1435 01:07:41,370 --> 01:07:45,490 Oikeastaan ​​tässä tapauksessa olen aio käyttää typedef. 1436 01:07:45,490 --> 01:07:48,590 Koska käytämme sitä tyyppi yhdessä paikassa. 1437 01:07:48,590 --> 01:07:51,990 Joten tässä tapauksessa, me todella haluamme typedef kuin olisimme tulostus uudenlainen 1438 01:07:51,990 --> 01:07:54,490 tavu, ja se on pohjimmiltaan tämä. 1439 01:07:54,490 --> 01:07:56,590 Se on vähän erilainen kuin # define. 1440 01:07:56,590 --> 01:08:02,740 >> Ja nyt, meidän koodi toimii täydellisesti. 1441 01:08:02,740 --> 01:08:05,230 Joten, jälleen, # define vie jotain, korvaa sitä kaikkialla 1442 01:08:05,230 --> 01:08:06,780 kanssa toinen asia. 1443 01:08:06,780 --> 01:08:07,920 Se on vain makro - 1444 01:08:07,920 --> 01:08:09,420 pika päästä eroon taikanumeroita. 1445 01:08:09,420 --> 01:08:11,360 Mutta tässä tapauksessa, koska olemme käyttää sitä tyyppiä - 1446 01:08:11,360 --> 01:08:12,180 täällä - 1447 01:08:12,180 --> 01:08:19,880 Jotta tämä toimisi, tarvitsemme to typedef mitä tavu on. 1448 01:08:19,880 --> 01:08:21,840 >> Ja me määrittelemättä sitä täällä. 1449 01:08:21,840 --> 01:08:24,750 Se ei ole struct, se on itse asiassa vain allekirjoittamaton kokonaisluku. 1450 01:08:24,750 --> 01:08:27,680 Se on yhden tavun pituinen. 1451 01:08:27,680 --> 01:08:31,910 Tämä koodi on käytettävissä verkossa, ja te kaikki pitäisi olla sitä juuri nyt. 1452 01:08:31,910 --> 01:08:33,830 >> Joten meillä on - 1453 01:08:33,830 --> 01:08:34,250 täydellinen - 1454 01:08:34,250 --> 01:08:41,359 13 minuuttia jäljellä mennä yli Harjoitus 5. 1455 01:08:41,359 --> 01:08:44,270 Haluan kävellä läpi copy.c yhdessä, ja sitten me puhumme lyhyesti 1456 01:08:44,270 --> 01:08:47,120 noin muut osat Ongelman asetettu. 1457 01:08:47,120 --> 01:08:48,899 Joten anna minun vetää ylös copy.c. 1458 01:08:48,899 --> 01:09:03,930 1459 01:09:03,930 --> 01:09:08,810 Ja cool juttu on, olemme todella jo kirjoittanut paljon tätä koodia. 1460 01:09:08,810 --> 01:09:11,180 >> Koodi kirjoitimme kirjaimellisesti vain tuli ulos täältä, kun olin 1461 01:09:11,180 --> 01:09:13,120 kirjoitan tätä itsekseni. 1462 01:09:13,120 --> 01:09:16,990 Mutta tämä on copy.c, muodostaa perustan varten kaksi ensimmäistä osaa 1463 01:09:16,990 --> 01:09:22,340 ongelma asetettu whodunit.c, joka sinun täytyy kirjoittaa, ja resize.c. 1464 01:09:22,340 --> 01:09:27,050 Recover.c, joka on kolmas ja viimeinen osa ongelmaa asetettu, ei ole 1465 01:09:27,050 --> 01:09:29,529 perustuu pois tämän tiedoston. 1466 01:09:29,529 --> 01:09:32,200 >> Olet menossa tarvitse kirjoittaa tiedoston, annamme sinulle malli, joka 1467 01:09:32,200 --> 01:09:34,620 tiedostoon, mutta sillä ei ole mitään tekemistä copy.c. 1468 01:09:34,620 --> 01:09:38,675 Mutta koska copy.c on perusta kaksi ensimmäistä osaa, menemme 1469 01:09:38,675 --> 01:09:42,000 kulkea sitä nyt, niin sinulla on hyvän tunteen, mitä se tekee. 1470 01:09:42,000 --> 01:09:43,640 >> Ja kommentteja antaa joitakin sen pois. 1471 01:09:43,640 --> 01:09:45,120 Olemme jo kirjoittanut joitakin tämän. 1472 01:09:45,120 --> 01:09:49,220 Ensinnäkin olemme varmistaen saamme kolme väitettä. 1473 01:09:49,220 --> 01:09:50,560 Seuraavaksi me muistaen tiedoston nimi. 1474 01:09:50,560 --> 01:09:52,960 Joten me ohitetaan tämä vaihe, kun me koodattu meidän juttu - 1475 01:09:52,960 --> 01:09:54,700 kun meidän cp. 1476 01:09:54,700 --> 01:09:56,750 Mutta täällä, he tekeminen se hieman puhtaampaa. 1477 01:09:56,750 --> 01:09:59,350 >> He Varmistamme Molemmat tiedostot ovat hyvä, 1478 01:09:59,350 --> 01:10:00,450 lisäksi niiden avaamista. 1479 01:10:00,450 --> 01:10:04,760 Kirjoitimme kaikki tämä koodi juuri nyt, joten olen aio paneutua tämän koodin. 1480 01:10:04,760 --> 01:10:09,670 Seuraavaksi on joitakin juttuja, jotka on nimenomaan tiedostotyypit käytämme, joka 1481 01:10:09,670 --> 01:10:12,240 ovat bittikarttatiedostoja. 1482 01:10:12,240 --> 01:10:15,660 Bittikarttatiedostot on joitakin metatietoja niihin liittyviä. 1483 01:10:15,660 --> 01:10:20,190 >> Joten pari ensimmäistä tavua kertoa tiedoston. 1484 01:10:20,190 --> 01:10:23,460 Ne eivät ole värejä pikseli että kuva. 1485 01:10:23,460 --> 01:10:25,120 He kertoa tiedoston. 1486 01:10:25,120 --> 01:10:28,220 Ja jos luet ongelma asetettu, sinulla on paljon enemmän tietoa 1487 01:10:28,220 --> 01:10:33,100 siitä, millaisia ​​metatietorakenteet mukana bittikarttoja. 1488 01:10:33,100 --> 01:10:39,350 >> Mutta siksi meillä on tämä ensimmäinen joukko - tätä koodia täällä. 1489 01:10:39,350 --> 01:10:42,490 Luemme metatiedot - 1490 01:10:42,490 --> 01:10:45,800 kaksi kappaletta metatiedot - tiedosto header ja info otsikkoa. 1491 01:10:45,800 --> 01:10:51,030 Ja olemme tarkkailun joitakin osia siitä varmista, että se on totta bittikarttatiedostoa 1492 01:10:51,030 --> 01:10:52,420 ennen kuin jatkat. 1493 01:10:52,420 --> 01:10:55,470 >> Ja vielä, nämä ovat vielä yksityiskohtia, ei tarvitse mennä nyt. 1494 01:10:55,470 --> 01:10:57,720 Jos luet ongelma asetettu, ymmärrätte näitä. 1495 01:10:57,720 --> 01:11:01,370 Pitkä tarina lyhyt, nämä ovat vain sanomalla, tämä on bittikarttatiedoston, ja 1496 01:11:01,370 --> 01:11:02,810 vahvistetaan, että. 1497 01:11:02,810 --> 01:11:05,180 >> Seuraavaksi olemme kirjoittamisen to pois tiedoston. 1498 01:11:05,180 --> 01:11:05,660 Näemme, että täällä. 1499 01:11:05,660 --> 01:11:06,910 Kirjoitamme ulos osoitin. 1500 01:11:06,910 --> 01:11:09,260 1501 01:11:09,260 --> 01:11:11,320 Seuraavaksi olemme määritettäessä täyte. 1502 01:11:11,320 --> 01:11:15,240 Joten jälleen, sillä on erityispiirre kanssa bittikarttatiedostoa, jotkut linjat ovat 1503 01:11:15,240 --> 01:11:16,840 padding lopussa. 1504 01:11:16,840 --> 01:11:19,000 Ja jos luet ongelma asetettu, opit lisää täyte. 1505 01:11:19,000 --> 01:11:22,330 Tämä on kaava löytää täyte. 1506 01:11:22,330 --> 01:11:23,610 >> Tärkeää muistaa - 1507 01:11:23,610 --> 01:11:29,720 kun muutat kokoa bittikartan tiedosto, täyte muutokset. 1508 01:11:29,720 --> 01:11:31,970 Kun muutat kokoa tiedosto, täyte muutokset. 1509 01:11:31,970 --> 01:11:34,310 Se ei koskaan tule olemaan yli 3 - 1510 01:11:34,310 --> 01:11:36,510 se tulee olla 0 kautta 3, osallistava. 1511 01:11:36,510 --> 01:11:38,930 Mutta kun muutat kokoa jotain, täyte muutokset. 1512 01:11:38,930 --> 01:11:47,100 >> Jos minulla on vain yksi pikseli tuolla rivillä, minä tarvitaan kolme tavua täyte, koska 1513 01:11:47,100 --> 01:11:51,190 jokainen rivi on oltava neljän monikertoja tavua pitkä bittikarttatiedosto. 1514 01:11:51,190 --> 01:11:56,120 Mutta jos minä tuplana, mennä yhdestä pikselin kahden pikselin, joista jokainen, 1515 01:11:56,120 --> 01:11:59,510 sanokaamme, on tavu, silloin minun täytyy kaksi tavua padding tehdä 1516 01:11:59,510 --> 01:12:00,970 että sama neljälle. 1517 01:12:00,970 --> 01:12:04,200 >> Joten kun muutan kokoa jotain, Minun täytyy muuttaa määrää 1518 01:12:04,200 --> 01:12:06,551 täyte minulla on. 1519 01:12:06,551 --> 01:12:08,100 Onko järkeä kaikille? 1520 01:12:08,100 --> 01:12:12,020 1521 01:12:12,020 --> 01:12:18,720 Seuraavaksi iteroidaan yli jokaisen rivin, tai kaikki rivit. 1522 01:12:18,720 --> 01:12:21,400 Ja sitten me kerrata läpi jokaisen sarakkeen kunkin rivin. 1523 01:12:21,400 --> 01:12:25,330 Olemme hoitoon tämän bittikartta kuten verkkoon, kuten olemme käsitelty 1524 01:12:25,330 --> 01:12:26,490 aluksella 15. 1525 01:12:26,490 --> 01:12:29,200 >> Kuten käsittelimme aluetta, kun me painettu ne näyttöön. 1526 01:12:29,200 --> 01:12:31,350 Verkkoon rivejä ja sarakkeita. 1527 01:12:31,350 --> 01:12:32,350 Sitten - näimme tämän. 1528 01:12:32,350 --> 01:12:33,840 Me itse asiassa vain koodattu tätä. 1529 01:12:33,840 --> 01:12:35,780 Loimme muutamia väliaikainen varastointi. 1530 01:12:35,780 --> 01:12:38,710 Luemme siellä ja sitten kirjoitamme sen ulos. 1531 01:12:38,710 --> 01:12:42,680 Tämä on juuri sitä, mitä me vain teimme. 1532 01:12:42,680 --> 01:12:46,760 >> Seuraava, koska sanoin jokaisen rivin päättyy täytettä, me 1533 01:12:46,760 --> 01:12:48,260 ohittaa että täyte - 1534 01:12:48,260 --> 01:12:51,000 vanha täyte. 1535 01:12:51,000 --> 01:12:52,630 Ja sitten lisäämme sen takaisin. 1536 01:12:52,630 --> 01:12:55,140 Tässä tapauksessa olemme luomassa täsmälleen sama tiedosto. 1537 01:12:55,140 --> 01:12:56,180 Me vain kopioimalla. 1538 01:12:56,180 --> 01:12:57,700 Joten tämä linja on tavallaan typerä. 1539 01:12:57,700 --> 01:12:59,660 Voisimme kirjaimellisesti vain laita täyte sisään 1540 01:12:59,660 --> 01:13:04,290 >> Mutta jos muutat tiedoston kokoa, kaipaatte vielä tätä linjaa? 1541 01:13:04,290 --> 01:13:08,510 1542 01:13:08,510 --> 01:13:11,560 Joten jos muutamme koko tiedoston, me silti halua ohittaa 1543 01:13:11,560 --> 01:13:12,810 yli vanhan täyte? 1544 01:13:12,810 --> 01:13:15,170 1545 01:13:15,170 --> 01:13:15,970 >> OPISKELIJAN 74: Kyllä. 1546 01:13:15,970 --> 01:13:17,090 >> JASON HIRSCHHORN: Niin teemme. 1547 01:13:17,090 --> 01:13:19,290 Koska tämä, jälleen, tarjouksia kanssa lähdetiedoston. 1548 01:13:19,290 --> 01:13:21,570 Emme välitä pehmusteet lähdetiedostosta. 1549 01:13:21,570 --> 01:13:23,410 Haluamme mennä seuraavalle riville. 1550 01:13:23,410 --> 01:13:28,850 Mutta emme yksinkertaisesti laittaa takaisin vanha määrä täyte. 1551 01:13:28,850 --> 01:13:31,540 Meidän täytyy laittaa takaisin uusi määrä täyte. 1552 01:13:31,540 --> 01:13:35,810 >> Joten kun olemme muuttumassa koko tiedosto, haluamme kuitenkin ohittaa 1553 01:13:35,810 --> 01:13:38,270 pehmuste vanhan tiedoston - mitä me luet sisään. 1554 01:13:38,270 --> 01:13:40,370 Mutta mitä me kirjallisesti, olemme menossa tarvitse laittaa takaisin hieman eri 1555 01:13:40,370 --> 01:13:41,890 määrä pehmuste, joka Olemme havainneet. 1556 01:13:41,890 --> 01:13:42,780 Joo. 1557 01:13:42,780 --> 01:13:44,550 >> OPISKELIJAN 75: Jotta näiden kahden linjat ei ole väliä, eikö? 1558 01:13:44,550 --> 01:13:46,160 Koska olet käsittelyssä erilaisia ​​tiedostoja. 1559 01:13:46,160 --> 01:13:46,620 >> JASON HIRSCHHORN: Aivan. 1560 01:13:46,620 --> 01:13:48,220 Jotta nämä kaksi riviä ei ole väliä. 1561 01:13:48,220 --> 01:13:49,790 Kirjoitamme tätä linjaa. 1562 01:13:49,790 --> 01:13:51,430 Tämä on täällä tiedosto Kirjoitamme. 1563 01:13:51,430 --> 01:13:54,370 Se on tärkeää, jotta saamme oikea määrä täyte. 1564 01:13:54,370 --> 01:13:57,560 Tämä on käsitellä tiedoston. 1565 01:13:57,560 --> 01:13:58,560 Haluamme hypätä suoraan pohjustuksen päälle. 1566 01:13:58,560 --> 01:13:59,470 >> Emme halua lukea - 1567 01:13:59,470 --> 01:14:01,500 jos luet tavu kerrallaan, me älä välitä niistä täyttötavut. 1568 01:14:01,500 --> 01:14:04,070 Haluamme siirtyä seuraavalle riville. 1569 01:14:04,070 --> 01:14:11,800 Lopuksi aivan kuten Lucy antoi meille, suljemme tiedostot ja palauttaa 0. 1570 01:14:11,800 --> 01:14:13,890 Joten tämä on copy.c. 1571 01:14:13,890 --> 01:14:17,850 Ja me itse asiassa kirjoitti - vietimme suurimman osan kohta kirjoitan tätä lähinnä. 1572 01:14:17,850 --> 01:14:18,740 >> Te teitte tämän. 1573 01:14:18,740 --> 01:14:22,440 Joten toivottavasti sinulla on hyvä tunne siitä, mitä täällä tapahtuu. 1574 01:14:22,440 --> 01:14:25,890 Suuri ero, rehellisesti, on vain Tässä ensimmäisessä osassa, joka käsittelee 1575 01:14:25,890 --> 01:14:29,970 erityispiirteet bittikarttatiedostoja. 1576 01:14:29,970 --> 01:14:33,570 Joten minulla on kuin minun seuraavan dian, mitä meidän täytyy tehdä? 1577 01:14:33,570 --> 01:14:35,510 No, ajattele dekkari. 1578 01:14:35,510 --> 01:14:38,080 >> Ja joku, joka lukea läpi Harjoitus, mitä me 1579 01:14:38,080 --> 01:14:41,410 täytyy tehdä dekkari? 1580 01:14:41,410 --> 01:14:42,080 Yksinkertaisesti. 1581 01:14:42,080 --> 01:14:42,460 Aleja. 1582 01:14:42,460 --> 01:14:48,570 >> Aleja: Voitko ottaa osaa kunkin pikselin, joka tarkoittaa punaista. 1583 01:14:48,570 --> 01:14:49,730 Ja sitten - 1584 01:14:49,730 --> 01:14:50,730 sellainen? 1585 01:14:50,730 --> 01:14:51,860 >> JASON HIRSCHHORN: OK. 1586 01:14:51,860 --> 01:14:54,460 Joten ota pois osa kutakin pikselin, joka tarkoittaa punaista. 1587 01:14:54,460 --> 01:14:57,234 Se on lähellä, mutta kaikki eivät sitä. 1588 01:14:57,234 --> 01:14:59,780 >> OPISKELIJAN 76: No, on erilaisia ​​tapoja tehdä sitä. 1589 01:14:59,780 --> 01:14:59,870 >> JASON HIRSCHHORN: OK. 1590 01:14:59,870 --> 01:15:03,070 Anna minulle yksi tapa. 1591 01:15:03,070 --> 01:15:08,240 >> OPISKELIJAN 76: Ota pois kaikki punaiset, ja Sitten korostavat sininen ja vihreä. 1592 01:15:08,240 --> 01:15:10,010 >> JASON HIRSCHHORN: OK. 1593 01:15:10,010 --> 01:15:11,830 Joten annetaan molemmat näistä tavoista - 1594 01:15:11,830 --> 01:15:15,210 se kuulostaa annamme sille pikselin, se on punainen, sininen ja vihreä tasolla. 1595 01:15:15,210 --> 01:15:19,350 Me haluamme muuttaa suhteelliset tasot punainen, sininen ja vihreä, riippuen 1596 01:15:19,350 --> 01:15:20,740 siitä, että pikseli. 1597 01:15:20,740 --> 01:15:28,380 Missä tämä koodi meidän pitäisi muuttaa suhteellinen punainen, sininen ja vihreä 1598 01:15:28,380 --> 01:15:29,720 tasot tietyn pikselin. 1599 01:15:29,720 --> 01:15:30,600 Sen jälkeen olemme lukeneet sitä - 1600 01:15:30,600 --> 01:15:32,520 ennen kuin kirjoittaa sen? 1601 01:15:32,520 --> 01:15:34,564 Anna minulle rivinumero. 1602 01:15:34,564 --> 01:15:35,950 >> USEITA Opiskelijat: 83. 1603 01:15:35,950 --> 01:15:37,320 >> JASON HIRSCHHORN: 83. 1604 01:15:37,320 --> 01:15:38,570 Joten täällä. 1605 01:15:38,570 --> 01:15:40,830 1606 01:15:40,830 --> 01:15:45,710 Sillä jännäri, koodi sinun täytyy kirjoittaa kaikkien pitäisi mennä tuolla. 1607 01:15:45,710 --> 01:15:47,640 Ja se on ainoa koodi sinun täytyy kirjoittaa. 1608 01:15:47,640 --> 01:15:51,520 Koska, kuten olemme kuulleet, kaikki mitä tarvitset tehdä, on muuttaa näitä suhteellista sininen, 1609 01:15:51,520 --> 01:15:54,420 punainen ja vihreä tasoilla kunkin pikselin. 1610 01:15:54,420 --> 01:15:58,250 >> Olet lukenut sen, ja nyt olet aikoo kirjoittaa sitä. 1611 01:15:58,250 --> 01:16:03,100 Miten saan - jos minulla on tämä asia triple, täällä, ja se on 1612 01:16:03,100 --> 01:16:04,570 kirjoita RGBTRIPLE - 1613 01:16:04,570 --> 01:16:08,650 No, jos me katsoimme bmp.h, mikä on RGBTRIPLE? 1614 01:16:08,650 --> 01:16:11,450 1615 01:16:11,450 --> 01:16:12,700 >> OPISKELIJAN 77: Se 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 Näemme, että oikeus tänne. 1619 01:16:22,330 --> 01:16:26,600 Joten jos halusin tutustua vaikkapa punainen taso struct, miten voin 1620 01:16:26,600 --> 01:16:30,005 pääsyn punainen taso tämän struct? 1621 01:16:30,005 --> 01:16:37,280 >> [LUOKKA sivuääniä] 1622 01:16:37,280 --> 01:16:38,530 >> OPISKELIJAN 78: RGBTRIPLE.rgbtred? 1623 01:16:38,530 --> 01:16:47,250 1624 01:16:47,250 --> 01:16:48,856 >> JASON HIRSCHHORN: Onko se oikein? 1625 01:16:48,856 --> 01:16:53,040 >> OPISKELIJAN 79: On kolminkertainen dot, eikä RGBTRIPLE piste? 1626 01:16:53,040 --> 01:16:54,120 >> JASON HIRSCHHORN: Triple. 1627 01:16:54,120 --> 01:16:56,700 Triple on paikallinen muuttuja, joten täällä, ei ole viitteitä täällä. 1628 01:16:56,700 --> 01:16:58,400 Joten me vain käyttää dot merkintä. 1629 01:16:58,400 --> 01:17:00,480 Tämä antaa minulle tasolla punaista. 1630 01:17:00,480 --> 01:17:06,180 Jos haluan vaihtaa sen, minä vain asettaa se equal jotain erilaista. 1631 01:17:06,180 --> 01:17:13,190 Joten jälleen, tämä rivi koodia sisäänkäyntien tämä muuttuja sisälle struct, ja 1632 01:17:13,190 --> 01:17:15,070 voimme asettaa sitä jotain uutta. 1633 01:17:15,070 --> 01:17:20,040 >> Joten jännäri, jälleen kerran, tämä on, pohjimmiltaan, mitä meidän täytyy tehdä. 1634 01:17:20,040 --> 01:17:21,170 Hyvin yksinkertainen. 1635 01:17:21,170 --> 01:17:25,020 Vain muuttaa joitakin suhteellisia tasoja, ja tämä on silloin, että koodi menee. 1636 01:17:25,020 --> 01:17:27,720 Kokoa, toisaalta, on vähän hankalampaa. 1637 01:17:27,720 --> 01:17:30,900 Itse asiassa, Asua on luultavasti Vaikein osa tätä ongelmaa asetettu. 1638 01:17:30,900 --> 01:17:32,720 Meillä on kolme minuuttia mennä sen yli. 1639 01:17:32,720 --> 01:17:34,910 >> Mutta jälleen kerran, olemme jo kirjoitettu useimmat tämän koodin, joten 1640 01:17:34,910 --> 01:17:36,500 pitäisi olla aika tuttu. 1641 01:17:36,500 --> 01:17:40,750 Mitkä ovat asioita, haluamme tehdä kokoa, jos olet lukenut yli 1642 01:17:40,750 --> 01:17:43,470 Harjoitus? 1643 01:17:43,470 --> 01:17:45,290 Jos annat ne minulle, me voi puhua niistä. 1644 01:17:45,290 --> 01:17:47,340 Mitkä ovat asioita, haluamme tehdä? 1645 01:17:47,340 --> 01:17:47,970 >> OPISKELIJAN 80: pystysuunnassa - 1646 01:17:47,970 --> 01:17:52,360 joten sinun täytyy vaakasuunnassa muuttaa sen kokoa, mutta pystysuunnassa muuttaa sen? 1647 01:17:52,360 --> 01:17:58,475 >> JASON HIRSCHHORN: Joten jos meille annetaan pikseli, ja haluamme muuttaa sitä 1648 01:17:58,475 --> 01:18:03,460 kertoimella kaksi, se nyt on kokoa vaakasuunnassa ja kokoa 1649 01:18:03,460 --> 01:18:05,220 pystysuunnassa. 1650 01:18:05,220 --> 01:18:06,640 Onko järkeä? 1651 01:18:06,640 --> 01:18:07,060 Joo. 1652 01:18:07,060 --> 01:18:09,300 Niin se on luultavasti Suurin haaste. 1653 01:18:09,300 --> 01:18:10,430 Ja me puhumme, että sek. 1654 01:18:10,430 --> 01:18:11,065 Joo. 1655 01:18:11,065 --> 01:18:15,270 >> OPISKELIJAN 81: tapa ajattelin sitä on sinun piti tulostaa sen - 1656 01:18:15,270 --> 01:18:15,490 >> JASON HIRSCHHORN: Odota. 1657 01:18:15,490 --> 01:18:17,580 Älä kerro meille, mitä teit. 1658 01:18:17,580 --> 01:18:20,620 Aiomme puhua logiikkaa. 1659 01:18:20,620 --> 01:18:21,870 >> OPISKELIJAN 81: OK. 1660 01:18:21,870 --> 01:18:25,090 1661 01:18:25,090 --> 01:18:27,410 Mikä oli kysymys? 1662 01:18:27,410 --> 01:18:28,892 >> JASON HIRSCHHORN: Sinä vain nosti kätesi. 1663 01:18:28,892 --> 01:18:31,600 Ei ollut kysymys. 1664 01:18:31,600 --> 01:18:32,520 Haluan esittää se. 1665 01:18:32,520 --> 01:18:34,560 Haluan vain keskustella asiasta lyhyesti. 1666 01:18:34,560 --> 01:18:38,400 Joten olemme yksi pikseli, haluamme jäljitellä sitä, vaaka-ja 1667 01:18:38,400 --> 01:18:39,360 pystysuunnassa. 1668 01:18:39,360 --> 01:18:48,920 Joten mieluiten mitä teemme täällä on, me lue meidän pikselin, kirjoitamme sen 1669 01:18:48,920 --> 01:18:51,690 kuitenkin monta kertaa. 1670 01:18:51,690 --> 01:18:54,720 >> Mutta sitten meillä on temppu täällä, koska Sitten haluamme siirtyä 1671 01:18:54,720 --> 01:18:57,660 seuraavalle riville ja kirjoita se alussa seuraavalle riville. 1672 01:18:57,660 --> 01:19:02,960 Joten jos haluamme jäljitellä sekä vaaka-ja pystysuunnassa, mikä on 1673 01:19:02,960 --> 01:19:05,050 yksi hyvä tapa tehdä se - 1674 01:19:05,050 --> 01:19:06,780 yksi hyvä vaikka tehdä niin? 1675 01:19:06,780 --> 01:19:11,950 Joten meidän ei tarvitse etsiä jatkuvasti ympärillä tiedosto sijoittaa asioita. 1676 01:19:11,950 --> 01:19:14,360 >> Tämä kysymys ei ehkä ole oli järkeä, mutta mielestäni 1677 01:19:14,360 --> 01:19:15,800 vastaus se auttaa. 1678 01:19:15,800 --> 01:19:17,210 >> OPISKELIJAN 82: Luo array? 1679 01:19:17,210 --> 01:19:20,090 >> JASON HIRSCHHORN: Joten ajatella Jokaisen tiedoston rivin. 1680 01:19:20,090 --> 01:19:22,550 Ajatellaanpa kannalta riveihin. 1681 01:19:22,550 --> 01:19:26,670 Jos meillä on ensimmäisen rivin meidän pieni kuvan, voimme tehdä, että rivi 1682 01:19:26,670 --> 01:19:30,640 isoon rivin iso kuva, ja sitten jäljitellä rivin kuitenkin 1683 01:19:30,640 --> 01:19:34,250 monta kertaa se on toistettu, sijaan menee pikseli kerrallaan, 1684 01:19:34,250 --> 01:19:37,260 joka saa hämmentävää, kun käsittelevät tiedostoja. 1685 01:19:37,260 --> 01:19:38,730 >> Koska jos meillä olisi - 1686 01:19:38,730 --> 01:19:41,260 Olen loppumassa tila. 1687 01:19:41,260 --> 01:19:46,490 Jos tämä on meidän tiedosto, ja meillä on, että yksi pikseli siellä, ja haluamme laittaa sen 1688 01:19:46,490 --> 01:19:49,840 oikeassa, meillä on vielä joitakin asioita että tarve mennä sinne kun olemme 1689 01:19:49,840 --> 01:19:51,450 kirjallisesti ja luoda uuden tiedoston - 1690 01:19:51,450 --> 01:19:53,250 Meidän tiedosto, joka on kaksi kertaa niin suuri. 1691 01:19:53,250 --> 01:19:56,820 >> Mutta se on todella vaikea tiedostojen toiminnot hypätä noin uusia linjoja 1692 01:19:56,820 --> 01:20:00,260 niin, ja sitten takaisin tänne ja laittaa asioita siellä. 1693 01:20:00,260 --> 01:20:04,500 On lähes mahdotonta tehdä jotain niin, jos se on järkevää. 1694 01:20:04,500 --> 01:20:10,180 Jos siis ajatella riveihin, voimme otamme peräkkäin, ja sitten laittaa se - 1695 01:20:10,180 --> 01:20:11,720 jäljitellä rivit pystysuunnassa. 1696 01:20:11,720 --> 01:20:15,860 >> Ja se, miten suhtaudumme kokoa pystysuunnassa pikemminkin kuin vaakasuunnassa. 1697 01:20:15,860 --> 01:20:18,810 Se oli aika nopea, ja hieman sekava. 1698 01:20:18,810 --> 01:20:22,375 Valitettavasti aika on ohi. 1699 01:20:22,375 --> 01:20:27,340 Minä seison ulkopuolella niille teistä täällä, joka on kysyttävää 1700 01:20:27,340 --> 01:20:30,500 Harjoitus, myös takaisin. 1701 01:20:30,500 --> 01:20:32,320 >> Joten lykätä nyt. 1702 01:20:32,320 --> 01:20:34,480 Ja vielä, jos sinulla on kysyttävää, voimme keskustella ulkopuolella. 1703 01:20:34,480 --> 01:20:38,294