1 00:00:00,000 --> 00:00:07,810 2 00:00:07,810 --> 00:00:09,840 >> Jason Hirschhorn: Sveicināti, ikviens, 6 nedēļas. 3 00:00:09,840 --> 00:00:14,790 Es esmu priecīgs redzēt jūs visus dzīvs un labi pēc Viktorīna 0, jo es zinu, ka 4 00:00:14,790 --> 00:00:15,810 bija nedaudz raupja. 5 00:00:15,810 --> 00:00:18,370 Bet par laimi, jūs visi bija neticami labi. 6 00:00:18,370 --> 00:00:21,680 Un tā tas ir brīnišķīgi. 7 00:00:21,680 --> 00:00:25,840 Ja tu esi manā sadaļā, es esmu devis visvairāk jums atpakaļ jūsu viktorīnas jau. 8 00:00:25,840 --> 00:00:28,050 >> Pāris no jums, es esmu tikšanās pēc klases. 9 00:00:28,050 --> 00:00:32,360 Un, ja jūs esat pagarinājums students un neesat saņēmis savu viktorīnas atpakaļ 10 00:00:32,360 --> 00:00:35,490 tomēr, jūsu TF, iespējams, pie tā strādājam un šķirošanas to, un saņemt to atpakaļ 11 00:00:35,490 --> 00:00:36,490 ar Jums tuvākajā laikā. 12 00:00:36,490 --> 00:00:39,650 Tātad mans pagarināšana studenti, kas ir skatoties tieši tagad - cerams dzīvot - 13 00:00:39,650 --> 00:00:42,880 Es saņems jūsu viktorīnas īsi, kā arī. 14 00:00:42,880 --> 00:00:45,670 >> Mūsu programma šodien ir šāds. 15 00:00:45,670 --> 00:00:50,170 Pirmkārt, mēs esam gatavojas iet pār daži resursi, kas CS50 nodrošina ar jums. 16 00:00:50,170 --> 00:00:54,590 Mēs ejam, lai iet pa Viktorīna 0 blakus, un Es atbildētu uz visiem jautājumiem ikvienam 17 00:00:54,590 --> 00:00:57,360 ir par konkrētām problēmām. 18 00:00:57,360 --> 00:01:02,050 Un tad mums būs iet pa file I / O un problēmu noteikts 5. 19 00:01:02,050 --> 00:01:07,360 Šie pēdējie divi temati notiks veido lielāko daļu no sadaļas šodien. 20 00:01:07,360 --> 00:01:11,680 >> Man šo sarakstu uz augšu katru nedēļu atgādinājums jums visiem, bet kodols 21 00:01:11,680 --> 00:01:14,650 sadaļā, mums ir tikai 90 minūtes - mēs nespēj aptvert visu, kas man 22 00:01:14,650 --> 00:01:16,280 labprāt vēlētos, lai segtu jums puiši. 23 00:01:16,280 --> 00:01:21,170 Bet mums ir ton resursu jums izdarīt pēc kā jūs iepazīt 24 00:01:21,170 --> 00:01:24,000 materiālu un darbu ar jūsu problēma komplekti. 25 00:01:24,000 --> 00:01:30,810 >> Atgādinājums, ka man ir online teksta kaste, kas izveidota, lai jūs varētu aizpildīt, ja 26 00:01:30,810 --> 00:01:33,250 ir kādas atsauksmes par mani, gan pozitīvas, un 27 00:01:33,250 --> 00:01:35,180 konstruktīva, aptuveni sadaļā. 28 00:01:35,180 --> 00:01:38,600 Ka URL atrodas pa labi uz leju šeit. 29 00:01:38,600 --> 00:01:43,250 Tātad, lūdzu, veltiet laiku, ja jums ir atgriezeniskā saite, vai sadaļā laikā 30 00:01:43,250 --> 00:01:48,030 vai pēc tam, vai arī pēc tam, kad jūs skatīties video tiešsaistē, lai dotu man jūsu atsauksmes. 31 00:01:48,030 --> 00:01:52,100 I really appreciate jebkuru un visu no tā. 32 00:01:52,100 --> 00:01:55,730 >> Tāpēc es esmu ar maziem sarunas ar daudz manu 33 00:01:55,730 --> 00:01:59,350 studentiem visā nedēļā - kā es ar roku atpakaļ viktorīnas, runājot par 34 00:01:59,350 --> 00:02:01,480 Protams, redzot, kā jūs darāt. 35 00:02:01,480 --> 00:02:05,120 Un viena tēma ir jānāk klajā atkal un vairāk runāt - it 36 00:02:05,120 --> 00:02:05,660 īpaši - 37 00:02:05,660 --> 00:02:07,710 problēma komplekti. 38 00:02:07,710 --> 00:02:13,090 Un man ir iekapsulēti šo tēmu uz kuģa tiesības tagad. 39 00:02:13,090 --> 00:02:16,630 >> Būtībā, tur ir atšķirība starp pagrieziena kaut ko, kas ir 40 00:02:16,630 --> 00:02:19,590 darīts pareizi un kaut tas tiek darīts labi. 41 00:02:19,590 --> 00:02:22,920 Lielākā daļa cilvēku ir darījuši fantastiska attiecībā uz pareizību - 42 00:02:22,920 --> 00:02:25,460 5 ir vai 4 s par visiem psets. 43 00:02:25,460 --> 00:02:27,930 Lielākā daļa cilvēku kļūst tiem visu laiku. 44 00:02:27,930 --> 00:02:31,150 >> Tomēr, tikai tāpēc, ka jūs esat darījuši kaut tiesības nenozīmē, ka jūs esat 45 00:02:31,150 --> 00:02:34,450 izdarīt kaut ko tik eleganti, vai efektīvi, vai arī tīri kā tu 46 00:02:34,450 --> 00:02:35,270 varēja darīt to. 47 00:02:35,270 --> 00:02:36,790 Un tas, ko dizains - 48 00:02:36,790 --> 00:02:39,230 un mazākā mērā, stils - 49 00:02:39,230 --> 00:02:40,450 asis ir par. 50 00:02:40,450 --> 00:02:45,130 Tāpēc es esmu stumšanas jums visiem, un citi TFS ir stumšanas jums puiši, ne tikai savukārt 51 00:02:45,130 --> 00:02:48,320 lietas, kas ir pareizi, bet savukārt ar lietām, kas ir kodētas labi. 52 00:02:48,320 --> 00:02:53,060 >> Nedara nevajadzīgi cilpas, nav pārrēķinot mainīgos, ja 53 00:02:53,060 --> 00:02:53,800 jums nav. 54 00:02:53,800 --> 00:02:58,520 Piemēram, atskatoties uz problēmu, noteikt 4, kad ievietojot ķieģeļu 55 00:02:58,520 --> 00:03:03,070 ekrāns, katrā rindā - katrs ķieģelis ņemot rinda ir tāds pats y koordinātu - 56 00:03:03,070 --> 00:03:04,390 pats augstums koordinātu. 57 00:03:04,390 --> 00:03:07,930 >> Tā, ka y koordinātu nebija nepieciešams aprēķina iekšpusē iekšpusē 58 00:03:07,930 --> 00:03:11,070 ligzdotu FOR cilpas, ka jūs, iespējams, izmanto likt šos ķieģeļus uz ekrāna. 59 00:03:11,070 --> 00:03:14,030 Tai ir tikai aprēķina katru reizi, kad pārgāja rindu, vai 60 00:03:14,030 --> 00:03:15,200 pārcēlās uz leju rindu. 61 00:03:15,200 --> 00:03:19,760 Tā teikt, ja ir 10 ķieģeļi ir rinda, katrs ķieģeļu var būt tāds pats 62 00:03:19,760 --> 00:03:22,260 y koordinātu, un, ka y-koordinātu var vienkārši aprēķināt 63 00:03:22,260 --> 00:03:23,550 reizi par visām no tiem. 64 00:03:23,550 --> 00:03:27,810 >> Tas nav nepieciešams aprēķināt 10 laiku, ne tas, ka aprēķinos ir 65 00:03:27,810 --> 00:03:30,220 notikt faktisko funkcija zvans - 66 00:03:30,220 --> 00:03:33,020 Jaunā gracked funkcija zvans. 67 00:03:33,020 --> 00:03:37,820 Tātad, ja tas bija nedaudz mulsinoši Jūs vairāk vispārīgi, lietas, kas 68 00:03:37,820 --> 00:03:40,730 nav nepieciešams, lai notiktu katru reizi jums iet caur cilpa nedrīkst 69 00:03:40,730 --> 00:03:42,900 likt iekšā cilpa, un nedrīkst notiks katru reizi, kad iet 70 00:03:42,900 --> 00:03:44,080 caur cilpa. 71 00:03:44,080 --> 00:03:49,270 >> Vēl viens labs dizains piemērs mēs redzējām 3 nedēļas 15, jūs varētu saglabāt 72 00:03:49,270 --> 00:03:50,500 dziesmu no nulles. 73 00:03:50,500 --> 00:03:53,600 Tātad, ja jūs sāktu kuģa, jūs saglabāt - globālā mainīgā, varbūt - 74 00:03:53,600 --> 00:03:56,140 x un y-koordināta nulli. 75 00:03:56,140 --> 00:03:57,520 Un tad, kad jūs - 76 00:03:57,520 --> 00:04:00,310 Jūsu pārvietot funkciju, kad veicat veiksmīgs solis, jums atjaunināt 77 00:04:00,310 --> 00:04:02,040 atrašanās vieta nulles. 78 00:04:02,040 --> 00:04:06,240 >> Kas varētu glābt jūs no pienākuma darīt ligzdotu FOR cilpas, lai meklētu, izmantojot 79 00:04:06,240 --> 00:04:10,700 iekāpt katru reizi jūsu pārvietoties funkcijas un atrast nulles, vai arī atrast flīzes, 80 00:04:10,700 --> 00:04:12,460 un pēc tam pārbaudiet, kas ir blakus. 81 00:04:12,460 --> 00:04:16,329 Tā vietā, jums ir atrašanās vietu nulle, jūs varat skatīties augstāk, tālāk, 82 00:04:16,329 --> 00:04:21,160 un pa kreisi un pa labi no tā, lai atrastu flīžu jūs meklējat. 83 00:04:21,160 --> 00:04:24,970 >> Tātad attiecībā uz programmu mēs esam rakstiski, viņi nekad nav pietiekami liels 84 00:04:24,970 --> 00:04:28,580 ka daži no šiem dizaina lēmumiem ir patiešām gatavojas traucēt jūsu 85 00:04:28,580 --> 00:04:31,670 programmu, vai arī padarīt to darboties lēnāk, vai varbūt pat palaist no atmiņas. 86 00:04:31,670 --> 00:04:35,030 Bet mēs joprojām stumšanas jums puiši rakstīt tik elegants un 87 00:04:35,030 --> 00:04:36,450 efektīvāku kodu, cik vien iespējams. 88 00:04:36,450 --> 00:04:39,910 >> Tātad, ja jūs galu galā rakstot lietas kas ir ievērojami lielāka 89 00:04:39,910 --> 00:04:44,660 jomu, tie tiks rakstīts ar labu izstrādāt papildus ir pareizs. 90 00:04:44,660 --> 00:04:46,300 Tāpēc daudzi no jums ir ko tas veic. 91 00:04:46,300 --> 00:04:48,560 Tas ir kaut kas, mēs meklējam - kaut mēs turpināsim 92 00:04:48,560 --> 00:04:49,840 push jums puiši par. 93 00:04:49,840 --> 00:04:52,460 >> Ja jums kādreiz ir kādi jautājumi par dizains savu programmu, justies brīvi 94 00:04:52,460 --> 00:04:56,870 panākt, lai mani, un es esmu laimīgs, lai staigāt pa savu programmu ar jums, 95 00:04:56,870 --> 00:05:01,320 un norāda dažus no dizaina lēmumiem veicāt, un sniegt jums dažus 96 00:05:01,320 --> 00:05:06,240 ieteikumi par to, kā padarīt vēl labāku dizainu lēmumus. 97 00:05:06,240 --> 00:05:08,870 >> Tātad, mēs ejam, lai pārietu uz runāt par viktorīnā 0. 98 00:05:08,870 --> 00:05:11,300 Pirms mēs to darām, vai kāds ir jautājumi par to, kas 99 00:05:11,300 --> 00:05:14,252 Es esmu uz līdz šim? 100 00:05:14,252 --> 00:05:21,500 >> [Šalkas TROKSNIS] 101 00:05:21,500 --> 00:05:22,750 >> Jason Hirschhorn: Septiņas sekundes. 102 00:05:22,750 --> 00:05:23,250 OK. 103 00:05:23,250 --> 00:05:24,970 Parunāsim par Viktorīna 0 mazliet. 104 00:05:24,970 --> 00:05:26,700 Lielākā daļa no jums ir jūsu viktorīnā 0 back. 105 00:05:26,700 --> 00:05:29,820 Ja jums nav, cerams, atceraties to mazliet. 106 00:05:29,820 --> 00:05:34,770 Bet, ja jūs esat pieņēmis Viktorīna 0, tad arī ir pieejami PDF tiešsaistē 107 00:05:34,770 --> 00:05:35,890 parauga šķīduma. 108 00:05:35,890 --> 00:05:39,480 >> Vai kāds ir kādi jautājumi, pirms mēs lēkt uz nedēļas materiālu par 109 00:05:39,480 --> 00:05:41,520 Īpaša problēma par Viktorīna 0 - 110 00:05:41,520 --> 00:05:44,630 kāpēc atbilde ir, kas tas ir? 111 00:05:44,630 --> 00:05:47,255 Ir kāds sajaukt par kaut ko? 112 00:05:47,255 --> 00:05:50,230 Pat ja jums ir problēma labi, bet tāpat gribētu man paskaidrot to mazliet 113 00:05:50,230 --> 00:05:52,640 vairāk, es esmu priecīgs to darīt tagad. 114 00:05:52,640 --> 00:05:57,800 >> Tāpēc es lūdzu jūs guys nāk sagatavoti ar dažiem 115 00:05:57,800 --> 00:05:59,440 domas par Viktorīna 0. 116 00:05:59,440 --> 00:06:02,660 Tātad, kas vēlētos iegūt mums sākās ar jautājumu, vai 117 00:06:02,660 --> 00:06:04,655 komentēt Viktorīna 0? 118 00:06:04,655 --> 00:06:07,435 119 00:06:07,435 --> 00:06:10,410 >> [PAPER šalkas] 120 00:06:10,410 --> 00:06:11,470 >> Jason Hirschhorn: Ne visiem izdarīja perfekti. 121 00:06:11,470 --> 00:06:12,720 Tāpēc es zinu, [smejas] 122 00:06:12,720 --> 00:06:15,950 tur ir daži jautājumi par viktorīnā 0. 123 00:06:15,950 --> 00:06:27,940 124 00:06:27,940 --> 00:06:28,590 OK. 125 00:06:28,590 --> 00:06:29,210 Jā. 126 00:06:29,210 --> 00:06:29,600 Ompica. 127 00:06:29,600 --> 00:06:30,520 >> OMPICA numurs: 10. 128 00:06:30,520 --> 00:06:33,560 >> Jason Hirschhorn numurs: 10. 129 00:06:33,560 --> 00:06:35,400 Kuriem viens bija skaitlis 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: ietver - 133 00:06:37,670 --> 00:06:40,060 134 00:06:40,060 --> 00:06:42,180 >> Jason Hirschhorn: Number 10 bija astoņi I - rakstot astoņiem līdz i? 135 00:06:42,180 --> 00:06:42,980 >> OMPICA: Jā. 136 00:06:42,980 --> 00:06:43,630 >> Jason Hirschhorn: OK. 137 00:06:43,630 --> 00:06:47,390 Tātad vēl viens jautājums, jums varētu būt jautāja bija man tālredzīgu? 138 00:06:47,390 --> 00:06:48,630 Atbilde ir jā. 139 00:06:48,630 --> 00:06:52,060 Iedaļā pirms viktorīnu, es jautāju jūs guys kods gan Sterling un 140 00:06:52,060 --> 00:06:52,980 astoņiem līdz i. 141 00:06:52,980 --> 00:06:54,770 Abas no tām notika parādās uz viktorīnas. 142 00:06:54,770 --> 00:06:57,510 Tātad, cerams, tu maksā uzmanību uz to. 143 00:06:57,510 --> 00:07:02,520 >> Un, ja jums bija, tad jums būtu iespējams izdarīt arī par šiem diviem. 144 00:07:02,520 --> 00:07:06,030 Bet astoņi līdz i, mēs neesam reāli kods tā klasē, bet tas bija, atkal, 145 00:07:06,030 --> 00:07:07,500 lūdza uz viktorīnas. 146 00:07:07,500 --> 00:07:13,270 Tāpēc pāris lietas, lai ņemtu atzīmēt, kodēšanas astoņi līdz i. 147 00:07:13,270 --> 00:07:17,320 Pirmā lieta, par šo jautājumu, bija kas jums nepieciešama, lai pārbaudītu, vai virkne 148 00:07:17,320 --> 00:07:20,300 bija vienāda null. 149 00:07:20,300 --> 00:07:28,060 >> Pāris cilvēki centās, lai pārbaudītu vēlāk programmā, ja s konsole man bija - 150 00:07:28,060 --> 00:07:30,940 tik īpašs raksturs, jo string - bija vienāda null. 151 00:07:30,940 --> 00:07:35,600 Bet atceries, ka null būtībā - tas ir labi domāt par 152 00:07:35,600 --> 00:07:39,100 null kā nulles rādītājs - rādītāju uz nulli - 153 00:07:39,100 --> 00:07:40,920 kaut kur atmiņā, kur Jūs nekad nevar piekļūt. 154 00:07:40,920 --> 00:07:44,730 >> Tātad, ja kaut kas ir vienāds ar nulli, jūs zinu, ka tas nav inicializēts, 155 00:07:44,730 --> 00:07:46,430 vai arī tur nekā nav. 156 00:07:46,430 --> 00:07:50,950 Tā s ir char zvaigzne, s kronšteins i ir char. 157 00:07:50,950 --> 00:07:57,410 Tāpēc tas ir jēga, lai salīdzinātu s uz null, bet ne s kronšteins i uz null. 158 00:07:57,410 --> 00:07:59,390 Bet atkal - tā, ka bija pirmā lieta, ka jūs vajadzēja darīt - 159 00:07:59,390 --> 00:08:03,510 pārbaudiet, lai pārliecinātos, ka jūs faktiski saņēmu reālu virkni. 160 00:08:03,510 --> 00:08:08,020 >> Tālāk, jūs vēlaties, lai iet cauri katrs simbols virknē. 161 00:08:08,020 --> 00:08:12,500 Un tā tas būtu, piemēram, u grupā i, piemēram, ja i ir jūsu iteratora. 162 00:08:12,500 --> 00:08:17,250 Un veikt šo raksturu, un saņem tā faktisko vērtību. 163 00:08:17,250 --> 00:08:21,800 Jūs to saglabāti kā char, bet ASCII vērtība nulles - 164 00:08:21,800 --> 00:08:23,010 nulle kā raksturs - 165 00:08:23,010 --> 00:08:25,450 faktiski nav vesels skaitlis nulle. 166 00:08:25,450 --> 00:08:28,700 Tas ir kādu citu numuru, jūs varat meklēt ASCII tabulā. 167 00:08:28,700 --> 00:08:30,790 >> Tik viens veids, kā labot par to - iespējams, labākais veids, lai koriģētu 168 00:08:30,790 --> 00:08:33,760 ka - ir atņemt no tā raksturs vērtības - 169 00:08:33,760 --> 00:08:35,140 nulle kā raksturs. 170 00:08:35,140 --> 00:08:38,490 Tāpēc mīnus vienu citātu, nulle, cits vienu citātu. 171 00:08:38,490 --> 00:08:44,620 , Kas veiks visus numuru, ir kā palijas, un saņemt to ir vienāda ar 172 00:08:44,620 --> 00:08:46,720 numurs, kā faktiskā skaitlim. 173 00:08:46,720 --> 00:08:50,300 >> Un tas ir ļoti līdzīga pieejai daudzi cilvēki ņēma 174 00:08:50,300 --> 00:08:52,800 Problēma noteikti 2, ar ķeizaru un Viginere - 175 00:08:52,800 --> 00:08:55,160 šie ciphers, kad jūs Tika pagriežot tos. 176 00:08:55,160 --> 00:08:59,210 Tātad, pēc tam, kad ir tā kā vairākās no nulles līdz deviņas, pēc tam - atkarībā no 177 00:08:59,210 --> 00:09:02,750 ja tas iet gala skaita - Jums ir nepieciešams, lai reizināt to 178 00:09:02,750 --> 00:09:04,120 ar jaudu 10. 179 00:09:04,120 --> 00:09:07,340 >> Daži cilvēki pārcēlās no muguras uz priekšā, un reizina indivīdu 180 00:09:07,340 --> 00:09:08,940 numurs, ar jaudu 10. 181 00:09:08,940 --> 00:09:11,160 Daži cilvēki pārcēlās no no priekšpuses uz aizmuguri - 182 00:09:11,160 --> 00:09:14,430 un tā notika augstākā kārtas numuru Pirmais - 183 00:09:14,430 --> 00:09:18,190 un ļautu ietaupīt tiem, globālo counter mainīgais. 184 00:09:18,190 --> 00:09:20,880 Un pēc tam katru reizi, izmantojot paredzēto cilpa, reizināt, ka milzu globālā 185 00:09:20,880 --> 00:09:25,640 counter mainīgo ar 10, lai vietas uz nākamo char. 186 00:09:25,640 --> 00:09:28,750 >> Tā, ka bija nedaudz mulsinoši bez man rakstot to uz kuģa. 187 00:09:28,750 --> 00:09:31,550 Bet parauga šķīdumu jums ir pieejama. 188 00:09:31,550 --> 00:09:32,870 Bet tie bija lielas lietas mēs meklējām. 189 00:09:32,870 --> 00:09:36,400 Arī pārbaudi, lai pārliecinātos, ka katrs individuālais raksturs bija patiešām 190 00:09:36,400 --> 00:09:39,780 raksturu no nulles līdz deviņiem, un nav kāds cits raksturs, piemēram, A, 191 00:09:39,780 --> 00:09:41,160 piemēram. 192 00:09:41,160 --> 00:09:43,150 >> Tie bija lietas, ko mēs meklējām minētajā jautājumā. 193 00:09:43,150 --> 00:09:46,510 194 00:09:46,510 --> 00:09:47,980 Tas, ka atbildi uz savu jautājumu? 195 00:09:47,980 --> 00:09:49,320 >> OMPICA: Jā. 196 00:09:49,320 --> 00:09:50,240 >> Jason Hirschhorn: OK. 197 00:09:50,240 --> 00:09:53,940 Vai ir kādi citi jautājumi par Viktorīna 0? 198 00:09:53,940 --> 00:09:55,440 Kas par apkopojot? 199 00:09:55,440 --> 00:09:56,740 Visi apkopojot labi? 200 00:09:56,740 --> 00:09:58,370 Nē. 201 00:09:58,370 --> 00:09:58,840 Tur bija - 202 00:09:58,840 --> 00:10:01,010 [Smejas] 203 00:10:01,010 --> 00:10:03,265 Kādi jautājumi par apkopošanas process? 204 00:10:03,265 --> 00:10:06,050 205 00:10:06,050 --> 00:10:06,966 Wow. 206 00:10:06,966 --> 00:10:11,090 >> [PAPER šalkas] 207 00:10:11,090 --> 00:10:11,520 >> Jason Hirschhorn: Jā. 208 00:10:11,520 --> 00:10:11,700 Michael. 209 00:10:11,700 --> 00:10:14,140 >> MICHAEL: Vai skaitlis 7 - izlases? 210 00:10:14,140 --> 00:10:16,500 >> Jason Hirschhorn: Number 7. 211 00:10:16,500 --> 00:10:20,670 Numuru 7 bija iegūt izlases skaitli. 212 00:10:20,670 --> 00:10:21,110 Lielisks. 213 00:10:21,110 --> 00:10:25,630 Tātad jūs esat dota veselu a un skaitlis b, un jūs vēlaties izlases 214 00:10:25,630 --> 00:10:28,710 skaitlis no a un b. 215 00:10:28,710 --> 00:10:31,740 Mēs faktiski var rakstīt šo vienu par klāja, jo tas viens 216 00:10:31,740 --> 00:10:33,320 bija viena līnija kods - 217 00:10:33,320 --> 00:10:34,390 viens veids, kā to darīt. 218 00:10:34,390 --> 00:10:37,810 >> Tāpēc mēs esam dota drand kā funkcija, mēs varētu izmantot. 219 00:10:37,810 --> 00:10:38,820 Un ko tas drand - 220 00:10:38,820 --> 00:10:40,290 pieņemot, ka tas ir bijis ar sēklām - 221 00:10:40,290 --> 00:10:42,316 Kāda drand atgriezties? 222 00:10:42,316 --> 00:10:44,840 >> MICHAEL: pludiņš starp 0.0 un 1.0. 223 00:10:44,840 --> 00:10:45,530 >> Jason Hirschhorn: numurs - jā. 224 00:10:45,530 --> 00:10:47,910 Skaitlis starp 0 un 1. 225 00:10:47,910 --> 00:10:51,760 Un tāpēc mums ir b un. 226 00:10:51,760 --> 00:10:55,480 Un tad mums ir mūsu izlases numuru no 0 līdz 1, ko mums drand. 227 00:10:55,480 --> 00:11:01,480 228 00:11:01,480 --> 00:11:06,630 Daži cilvēki centās likt B vai b mīnus , vai kaut kas iekšā, kas 229 00:11:06,630 --> 00:11:07,960 iekavās. 230 00:11:07,960 --> 00:11:11,210 Tas nozīmētu, ka viņi ir argumenti, lai šo funkciju. 231 00:11:11,210 --> 00:11:13,450 >> drand neveic nekādus argumentus - piemēram getString nav 232 00:11:13,450 --> 00:11:14,330 neveic nekādus argumentus. 233 00:11:14,330 --> 00:11:16,600 Tātad, tas ir tikai atvērt paren, close paren - un tas pats par sevi ir 234 00:11:16,600 --> 00:11:17,330 funkcija zvans. 235 00:11:17,330 --> 00:11:19,770 Un tas dod jums vairākas starp 0 un 1. 236 00:11:19,770 --> 00:11:22,820 Protams, mums ir vesela virkne ka skaitļi var būt iekšā 237 00:11:22,820 --> 00:11:28,470 >> Teikt, ja b ir 10, un ir 5, mēs patiešām gribu numuru ar virkni 5. 238 00:11:28,470 --> 00:11:36,940 Tāpēc nākamā lieta, kas mums jādara, ir reizināt to ar diapazonu b mīnus. 239 00:11:36,940 --> 00:11:40,380 Tātad, pieņemot, ka ir palielinājusies. 240 00:11:40,380 --> 00:11:42,590 Un tas mums dos numuru noteiktā diapazonā. 241 00:11:42,590 --> 00:11:46,610 Un ka īpaša diapazons ir Atšķirība starp b mīnus. 242 00:11:46,610 --> 00:11:50,030 >> Un, visbeidzot, ka būs tikai dot no - saka diapazonu starp b mīnus 243 00:11:50,030 --> 00:11:52,520 ir 5, ka došu mums skaitlis no 0 līdz 5. 244 00:11:52,520 --> 00:11:56,000 Bet, ja faktiski ir 5, mums ir nepieciešams, lai palielinātu šis diapazons līdz, kur tas ir 245 00:11:56,000 --> 00:12:01,380 patiesībā vajadzēja būt, pievienojot. 246 00:12:01,380 --> 00:12:02,580 Tā, kas izpaužas loģika tiesības. 247 00:12:02,580 --> 00:12:03,745 Un tad tu būtu cits jautājums? 248 00:12:03,745 --> 00:12:04,547 >> MICHAEL: Nē. 249 00:12:04,547 --> 00:12:06,010 Es tikai justies patiesi muļķīgi tagad. 250 00:12:06,010 --> 00:12:06,405 [Smejas] 251 00:12:06,405 --> 00:12:06,730 >> Jason Hirschhorn: Nē. 252 00:12:06,730 --> 00:12:08,640 Nejūtas īsti mēms. 253 00:12:08,640 --> 00:12:10,560 Cilvēku skaits cīnījās ar šo jautājumu. 254 00:12:10,560 --> 00:12:13,920 Un tad, cits jautājums ir, drand, jūs teicāt, sniedz jums peldēt - 255 00:12:13,920 --> 00:12:14,940 atgriež peldēt. 256 00:12:14,940 --> 00:12:18,020 Bet šī funkcija tiešām lūdza lai skaitlis jāatdod. 257 00:12:18,020 --> 00:12:23,700 >> Jums nav nepieciešams nodot to skaidri līdz veselam skaitlim, jo ​​šie 258 00:12:23,700 --> 00:12:29,090 operācijas pret to, kā viss ir peldēt - kā peldošo punktu skaitu. 259 00:12:29,090 --> 00:12:31,570 Tāpat kā šī būs - pat tad, ja tas ir vesels skaitlis, tas 260 00:12:31,570 --> 00:12:32,890 jāreizina pareizi. 261 00:12:32,890 --> 00:12:34,000 Visi pavairošana darbosies. 262 00:12:34,000 --> 00:12:35,060 Jums nav nepieciešams nodot to šeit. 263 00:12:35,060 --> 00:12:36,480 Patiesībā, jums nevajadzētu mest. 264 00:12:36,480 --> 00:12:37,310 >> Tas - 265 00:12:37,310 --> 00:12:40,750 ja jūs varētu likt numuru , kas ir starp 0 un 1 - 266 00:12:40,750 --> 00:12:42,680 izlases numuru, peldošā komata - 267 00:12:42,680 --> 00:12:47,850 tad tas būs vai nu tikai 0 vai 1, tā jūs zaudējat visu šo precizitāti. 268 00:12:47,850 --> 00:12:50,120 Bet beigās, kad jūs atgrieztos, tas automātiski kļūst 269 00:12:50,120 --> 00:12:51,620 nosūtīti atpakaļ kā vesels skaitlis. 270 00:12:51,620 --> 00:12:56,870 Tātad jums nav nepieciešams darīt ka liešana sevi. 271 00:12:56,870 --> 00:13:00,810 >> Tātad šī bija atbilde šis jautājums, skaitlis 7. 272 00:13:00,810 --> 00:13:02,190 Jebkādi citi jautājumi par Viktorīna 0? 273 00:13:02,190 --> 00:13:03,300 Jā, Annie. 274 00:13:03,300 --> 00:13:05,050 >> ANNIE: Kad mēs izmantojam rekursīvs - 275 00:13:05,050 --> 00:13:07,850 kad mēs izmantojam iteratīvs cilpas? 276 00:13:07,850 --> 00:13:10,210 >> Jason Hirschhorn: Ja jūs izmantojat rekursīvā - tā plašāk, 277 00:13:10,210 --> 00:13:14,110 plusi un mīnusi rekursijas pret iteratīvs pieeja. 278 00:13:14,110 --> 00:13:17,110 Var kāds piedāvāt pro vai con? 279 00:13:17,110 --> 00:13:19,460 Lūdzu? 280 00:13:19,460 --> 00:13:20,140 Nevar kāds. 281 00:13:20,140 --> 00:13:22,526 Kas var piedāvāt pro vai con? 282 00:13:22,526 --> 00:13:26,963 >> [PAPER šalkas] 283 00:13:26,963 --> 00:13:29,730 >> STUDENT 1: Rekursīva ir mazāk kodēšana - mazāk rakstīt? 284 00:13:29,730 --> 00:13:33,170 >> Jason Hirschhorn: Tātad kopumā, rekursijas īpaši, funkcija - 285 00:13:33,170 --> 00:13:35,750 vai algoritms, piemēram, sapludināšanai kārtot - kas pakļauj sevi 286 00:13:35,750 --> 00:13:37,300 uz rekursīvo pieeju - 287 00:13:37,300 --> 00:13:40,710 varētu būt vienkāršāka ar kodu rekursīvi. 288 00:13:40,710 --> 00:13:43,940 Un tikai daudz lietderīgāk to darīt rekursīvi. 289 00:13:43,940 --> 00:13:46,230 Lai būtu pro rekursijas. 290 00:13:46,230 --> 00:13:46,610 Citi? 291 00:13:46,610 --> 00:13:47,467 Yeah? 292 00:13:47,467 --> 00:13:49,240 >> STUDENT 2: Con līdz rekursijas - 293 00:13:49,240 --> 00:13:50,940 Tas aizņem vairāk atmiņas. 294 00:13:50,940 --> 00:13:52,200 >> Jason Hirschhorn: Tātad tieši labi. 295 00:13:52,200 --> 00:13:55,720 Rekursīvas funkcijas turpinās pievienojot kaudze rāmji kaudze. 296 00:13:55,720 --> 00:13:59,690 Tātad, ja jūs darbojas daudz numurus, un ir, lai izsauktu šo 297 00:13:59,690 --> 00:14:02,560 darbojas daudz, tad jums noteikti būs aizņem vairāk atmiņas, bet 298 00:14:02,560 --> 00:14:05,810 iteratīvs pieeja būs tikai nodot vienu kaudze rāmi uz steku, jo 299 00:14:05,810 --> 00:14:08,420 tas viss notiek vienā funkciju. 300 00:14:08,420 --> 00:14:11,010 >> Jebkuri citi plusi un mīnusi? 301 00:14:11,010 --> 00:14:11,500 Jā. 302 00:14:11,500 --> 00:14:12,550 >> STUDENT 3: Pros par rekursijas. 303 00:14:12,550 --> 00:14:15,950 Jums nav noteikt iepriekš, cik reizes 304 00:14:15,950 --> 00:14:17,660 kods bija jāatkārto. 305 00:14:17,660 --> 00:14:22,810 Var būt iepriekš vairākas reizes, ka jums ir atkārtot, tad 306 00:14:22,810 --> 00:14:26,420 rekursija ir labāk, jo tā veic šo rezultātu. 307 00:14:26,420 --> 00:14:27,780 >> Jason Hirschhorn: Es domāju, ka ir taisnība. 308 00:14:27,780 --> 00:14:30,770 Bet es domāju, ka abos gadījumos Jūs nekad - 309 00:14:30,770 --> 00:14:33,290 jūs, iespējams, iegūt kādu informāciju no lietotāja. 310 00:14:33,290 --> 00:14:35,990 Vai šī funkcija būtu sava ieeja , kas nosaka, cik reizes 311 00:14:35,990 --> 00:14:36,730 vajadzētu darboties. 312 00:14:36,730 --> 00:14:39,520 Tātad kopumā, jums nebūtu grūti kods - pat tādā ceļā, - kā 313 00:14:39,520 --> 00:14:40,940 daudzas reizes, ka cilpa būtu palaist. 314 00:14:40,940 --> 00:14:46,100 315 00:14:46,100 --> 00:14:48,670 >> Vai jums ir cits jūs bijāt domāt par, Annie? 316 00:14:48,670 --> 00:14:49,330 OK. 317 00:14:49,330 --> 00:14:51,650 Tātad tie, iespējams, divi - 318 00:14:51,650 --> 00:14:54,370 lielākais pro un lielākā con lai rekursīvs pret 319 00:14:54,370 --> 00:14:57,080 iteratīvs pieeja. 320 00:14:57,080 --> 00:14:57,690 OK. 321 00:14:57,690 --> 00:14:59,465 Kaut kas cits uz Viktorīna 0? 322 00:14:59,465 --> 00:15:08,940 323 00:15:08,940 --> 00:15:09,920 >> Pieņemsim pāriet. 324 00:15:09,920 --> 00:15:15,260 Failu I / O. Ir brīnišķīgi īsa šonedēļ failu I / O, kas, cerams, 325 00:15:15,260 --> 00:15:19,270 jums ir skatīties vairākus reizes, un apbrīnoja. 326 00:15:19,270 --> 00:15:22,910 Daudz darba iegāja, un es esmu dzirdēju tas ir insanely noderīga. 327 00:15:22,910 --> 00:15:25,740 Es arī ietvēra saiti uz šo slaidu, ja jums nav bijis 328 00:15:25,740 --> 00:15:29,160 iespēja skatīties to 10 reizes. 329 00:15:29,160 --> 00:15:35,280 >> Tātad, mēs īsi iet pāri galvenie soļi, lai atvērtu un darba 330 00:15:35,280 --> 00:15:38,400 ar failiem, un tad mēs gatavojamies nodoties kodēšanas problēmas, pirms 331 00:15:38,400 --> 00:15:40,400 Pētot šo problēmu kopumu. 332 00:15:40,400 --> 00:15:44,330 Tātad vēlreiz, es esmu gatavojas īstenot šo līdzi ekrāns, bet es esmu gatavojas runāt par 333 00:15:44,330 --> 00:15:47,630 tikai minūti par to, ko mēs esam šeit darāt ar failu I/O-- 334 00:15:47,630 --> 00:15:49,090 Ko tas nozīmē? 335 00:15:49,090 --> 00:15:55,280 >> Tas nozīmē, ka mēs varam izveidot mūsu programmām, un tad ir mūsu programmas 336 00:15:55,280 --> 00:16:00,370 izejas, un nav veicis nekādas ietekmes uz pasaule ārpus mūsu programmā. 337 00:16:00,370 --> 00:16:04,630 Bet, kad mēs sākam strādāt ar failiem - gan lasot tos un veidojot 338 00:16:04,630 --> 00:16:10,460 viņiem - mēs varam būt zināma ietekme uz pasaules ārpus mūsu programmā. 339 00:16:10,460 --> 00:16:15,440 >> Tāpat kā, ja Microsoft Word nevarēja veikt jebkādas Word dokumentus, tad 340 00:16:15,440 --> 00:16:18,710 pēc tam, kad Microsoft Word atmest, visas jūsu darbs būtu aizgājuši, un tas būtu 341 00:16:18,710 --> 00:16:19,740 tiešām ir bezjēdzīgi. 342 00:16:19,740 --> 00:16:23,620 Mēs galu galā vēlaties, lai varētu rakstīt programmas, kas var ietekmēt 343 00:16:23,620 --> 00:16:31,350 Pasaule ap viņiem, gan uzņemot komplekss ieejas - attiecībā uz failiem un 344 00:16:31,350 --> 00:16:37,080 ar failiem, kā arī radot interesantu un pārliecinoši rezultāti - 345 00:16:37,080 --> 00:16:39,520 ziņā dažāda veida failus. 346 00:16:39,520 --> 00:16:43,730 >> Tātad, tas ir iemesls, kāpēc mēs sākam uzzināt, kā strādāt ar failiem. 347 00:16:43,730 --> 00:16:47,080 Precīzāk, kāda mēs darām, ir šādi. 348 00:16:47,080 --> 00:16:47,680 Tas ir ļoti vienkārši. 349 00:16:47,680 --> 00:16:51,530 Ir tikai pāris soļi, un tie ir šeit par šo kodeksu. 350 00:16:51,530 --> 00:16:55,130 Tāpēc mēs esam gatavojas iet cauri Šis kods pozīcijai. 351 00:16:55,130 --> 00:16:57,630 >> Pirmkārt, jūs redzat uzsvēra - 352 00:16:57,630 --> 00:17:01,330 ja jūs strādājat ar failu, neatkarīgi no faila tipa tas ir, 353 00:17:01,330 --> 00:17:02,670 Jums ir nepieciešams, lai to atvērtu. 354 00:17:02,670 --> 00:17:05,130 Un tas ir ar aicinājumu fopen - 355 00:17:05,130 --> 00:17:05,950 tieši šeit. 356 00:17:05,950 --> 00:17:07,980 Jūs iekļaut faila nosaukumu. 357 00:17:07,980 --> 00:17:11,930 Ja fails nav jūsu direktorijā, vai mape, kurā šī programma 358 00:17:11,930 --> 00:17:15,910 dzīvi, tad jums arī nepieciešams iekļaut ceļš, kur tas fails. 359 00:17:15,910 --> 00:17:19,099 >> Mēs esam gatavojas pieņemt, ka tas failu ar nosaukumu "text.txt" - 360 00:17:19,099 --> 00:17:24,220 vienkāršs teksta dokuments - ir vienā mapē ar šo programmu ir. 361 00:17:24,220 --> 00:17:26,859 Tātad tas ir cita lieta, kas jāpatur prātā - ka, ja jūs vēlaties, lai atvērtu failu 362 00:17:26,859 --> 00:17:30,050 kaut kur citur, jums tiešām ir nepieciešams lai iekļautu tās atrašanās vietu. 363 00:17:30,050 --> 00:17:33,520 >> Otrkārt, jūs varat iet par argumentu, lai fopen, un tas, ko jūs vēlaties darīt 364 00:17:33,520 --> 00:17:34,620 ar failu. 365 00:17:34,620 --> 00:17:38,450 Ir trīs galvenie argumenti, ka jūs gatavojas nodot fopen. 366 00:17:38,450 --> 00:17:40,060 Kas var dot man šos trīs? 367 00:17:40,060 --> 00:17:44,960 368 00:17:44,960 --> 00:17:47,130 Kas var dot man vienu no tiem? 369 00:17:47,130 --> 00:17:48,130 Jā. 370 00:17:48,130 --> 00:17:50,010 >> STUDENT 4: faila nosaukums? 371 00:17:50,010 --> 00:17:50,440 >> Jason Hirschhorn: Sorry. 372 00:17:50,440 --> 00:17:55,490 Trīs galvenie argumenti jūs varat iet kā otrais arguments fopen. 373 00:17:55,490 --> 00:17:57,060 Tev taisnība - faila nosaukums ir pirmais arguments. 374 00:17:57,060 --> 00:18:01,620 Bet otrais arguments fopen ir parasti trīs stīgas, un - jā. 375 00:18:01,620 --> 00:18:02,210 Aleja. 376 00:18:02,210 --> 00:18:03,490 >> ALEJA: par pievienot. 377 00:18:03,490 --> 00:18:06,840 >> Jason Hirschhorn:, ja vēlaties pievienot uz failu, kas jau pastāv. 378 00:18:06,840 --> 00:18:07,810 >> STUDENT 5: R lasīt. 379 00:18:07,810 --> 00:18:09,930 >> Jason Hirschhorn: R, ja jūs vēlas lasīt no faila. 380 00:18:09,930 --> 00:18:10,670 >> STUDENT 6: W rakstīt. 381 00:18:10,670 --> 00:18:12,840 >> Jason Hirschhorn: Un, w, ja jums vēlas rakstīt failā. 382 00:18:12,840 --> 00:18:17,570 Tātad šajā gadījumā mēs esam rakstiski lietai, tāpēc mums ir w. 383 00:18:17,570 --> 00:18:22,360 Atverot to, jums ir arī, lai saglabātu failu kaut kur, un tas ir ar 384 00:18:22,360 --> 00:18:26,000 kodu kreisajā pusē uzdevums operators - 385 00:18:26,000 --> 00:18:31,220 Es veidoju rādītāju uz failu sauc, šajā gadījumā failu. 386 00:18:31,220 --> 00:18:36,070 >> Mēs nebrauksim jāuztraucas, ko Tas visas cepures FILE lieta ir. 387 00:18:36,070 --> 00:18:40,600 Pietiek pateikt, tas ir garš plūsma nuļļu un vieninieku. 388 00:18:40,600 --> 00:18:44,970 Un tas, kā mēs gatavojamies darboties un saprast to. 389 00:18:44,970 --> 00:18:47,300 >> Nākamā lieta, kas mums jādara, - un tas ir neticami svarīgi - 390 00:18:47,300 --> 00:18:49,070 ikreiz, kad atverat failu - 391 00:18:49,070 --> 00:18:54,250 Patiesībā, kad jūs aicināt malloc, lai Piemēram, un iegūt kādu atmiņu un mēģināt 392 00:18:54,250 --> 00:18:57,980 un saglabājiet to rādītāju, jūs vienmēr vēlaties pārbaudīt, lai pārliecinātos, ka tas 393 00:18:57,980 --> 00:19:00,230 funkcija neatgriezās null. 394 00:19:00,230 --> 00:19:05,230 >> Tātad šajā gadījumā, mēs pārbaudām, pārliecināts, ka mēs faktiski atver 395 00:19:05,230 --> 00:19:10,230 failu pareizi, un tur bija nav kļūda mūsu programmā. 396 00:19:10,230 --> 00:19:15,160 Tālāk, kad mēs esam jāpārbauda, ​​lai pārliecinātos, ka ka mums ir darba failu, mēs varam 397 00:19:15,160 --> 00:19:18,520 rakstīt vai lasīt no, vai pievienot lietai. 398 00:19:18,520 --> 00:19:24,270 Šajā gadījumā, es esmu vienkārši drukāšanas viena rinda uz šo failu. 399 00:19:24,270 --> 00:19:25,450 >> Kā es varu zināt, ka? 400 00:19:25,450 --> 00:19:27,990 Nu, es esmu, izmantojot šo funkciju sauc fprintf. 401 00:19:27,990 --> 00:19:30,970 Visas funkcijas, jums būs, izmantojot rakstot uz vai lasot no, vai 402 00:19:30,970 --> 00:19:34,950 manipulējot failus būs līdzīgi funkcijas, jūs esat redzējis, bet 403 00:19:34,950 --> 00:19:38,420 sākas ar burtu F, stāvot failu. 404 00:19:38,420 --> 00:19:43,440 Un fprintf, atšķirībā no mūsu parasto drukas app, aizņem vienu papildu argumentu, 405 00:19:43,440 --> 00:19:47,800 un tas ir fails, kurā vēlaties izdrukāt šo līniju. 406 00:19:47,800 --> 00:19:50,640 >> Man nav nekas tiesības ohai. 407 00:19:50,640 --> 00:19:52,860 Man nav trešdaļu arguments printf - 408 00:19:52,860 --> 00:19:57,030 vai otrs arguments printf, Trešais arguments fprintf, jo es 409 00:19:57,030 --> 00:19:59,480 nav nekādu vietturus šeit. 410 00:19:59,480 --> 00:20:01,070 Es neesmu ieskaitot jebkādus mainīgos. 411 00:20:01,070 --> 00:20:06,070 Bet atkal, fprintf un visi no šiem materiāliem funkcijas, kas darbojas ar failiem 412 00:20:06,070 --> 00:20:09,820 parasti būs nepieciešama failu par kuriem viņi darbojas. 413 00:20:09,820 --> 00:20:15,960 >> Visbeidzot, pēdējā svarīga lieta darīt, ir, lai aizvērtu failu, tāpat kā 414 00:20:15,960 --> 00:20:19,530 ar - kad mēs malloc kaut ko, Mēs vēlamies, lai atbrīvotu kaut ko, citādi mēs 415 00:20:19,530 --> 00:20:22,730 ir atmiņas noplūde - mēs gribam slēgt savu failu. 416 00:20:22,730 --> 00:20:28,180 Ja šī programma iziet neaizverot failu, izredzes ir nekas iet 417 00:20:28,180 --> 00:20:30,050 nepareizi, it īpaši, ja tas bija neliels fails. 418 00:20:30,050 --> 00:20:35,020 >> Bet tas noteikti ir labs kodēšanas stils un praksi, lai vienmēr slēgt failu 419 00:20:35,020 --> 00:20:38,050 kad esat beidzis to izmanto. 420 00:20:38,050 --> 00:20:43,630 Tāpēc, ka ir par failu pamati I / O. Jūs, iespējams, esat redzējis, ka pirms, vai 421 00:20:43,630 --> 00:20:45,710 noskatījos to šajā fantastiskajā īss. 422 00:20:45,710 --> 00:20:48,410 Vai kāds ir kādi jautājumi, pirms mēs iedziļināties praksē kodēšanas 423 00:20:48,410 --> 00:20:51,800 problēmas, par failu I / O vai soļi Es devos pāri? 424 00:20:51,800 --> 00:21:00,198 425 00:21:00,198 --> 00:21:03,162 >> [Ierakstot SOUNDS] 426 00:21:03,162 --> 00:21:04,150 >> Jason Hirschhorn: Vai jūs ir jautājums, Avi? 427 00:21:04,150 --> 00:21:04,660 >> AVI: Nē. 428 00:21:04,660 --> 00:21:04,740 >> Jason Hirschhorn: OK. 429 00:21:04,740 --> 00:21:06,746 Es esmu gatavojas jāgaida vēl septiņas sekundes. 430 00:21:06,746 --> 00:21:07,590 [Smejas] 431 00:21:07,590 --> 00:21:08,620 Tas ir ļoti labs padoms. 432 00:21:08,620 --> 00:21:10,750 Jūs puiši vienkārši nepatīk uzdodot jautājumus. 433 00:21:10,750 --> 00:21:11,660 Tas ir jauki. 434 00:21:11,660 --> 00:21:12,330 OK. 435 00:21:12,330 --> 00:21:17,620 Tātad, mūsu pirmais prakse problēma ir tā, mēs esam gatavojas dublēt funkcijas 436 00:21:17,620 --> 00:21:22,330 komandrindas rīks, kas jums, iespējams, lieto pirms - kopija - 437 00:21:22,330 --> 00:21:23,500 kopiju rīks. 438 00:21:23,500 --> 00:21:28,050 Ja jūs tipa CP un pēc tam nodot to divu argumenti, uz savu termināli, jūs varat 439 00:21:28,050 --> 00:21:28,980 kopēt failu. 440 00:21:28,980 --> 00:21:31,220 Un tas ir tas, ko mēs gatavojamies rakstīt tieši tagad. 441 00:21:31,220 --> 00:21:35,830 >> Tātad vēlreiz, nolasot šo slaidu, es gribētu Jums uzrakstīt programmu, kas ņem 442 00:21:35,830 --> 00:21:38,130 divas un tikai divas komandrindas argumenti - 443 00:21:38,130 --> 00:21:40,750 avota failu un galamērķa failu - 444 00:21:40,750 --> 00:21:44,590 un kopijas saturam avota failu mērķa failā 445 00:21:44,590 --> 00:21:46,960 viens baits laikā. 446 00:21:46,960 --> 00:21:48,510 Tātad, tas ir daudz prasīt. 447 00:21:48,510 --> 00:21:52,200 >> Atkal, laba pieeja, ir tas, lai nav iet taisni uz C kodu, bet 448 00:21:52,200 --> 00:21:54,280 sadalīt pāris soļus. 449 00:21:54,280 --> 00:21:58,400 Pirmkārt, domāju par loģiku - precīzi ko es esmu lūdzot jums darīt - 450 00:21:58,400 --> 00:22:00,620 un saprast visu soļi, lai šo problēmu. 451 00:22:00,620 --> 00:22:04,410 Ne C, tikai dažās pseudocode, vai pat garīgo modelis 452 00:22:04,410 --> 00:22:06,030 kas notiek. 453 00:22:06,030 --> 00:22:10,050 >> Tālāk, kad esat pseudocode leju, izdomāt, kā pseudocode 454 00:22:10,050 --> 00:22:14,600 kartes pārnešanai rīkus un lietas, ko mēs esam iemācījās lietot C 455 00:22:14,600 --> 00:22:19,070 >> Un visbeidzot, ja jums ir viss, kas kopā, jūs varat kodu problēmu. 456 00:22:19,070 --> 00:22:23,370 Aizņem 5 līdz 10 minūtes strādāt pie šīs problēmas. 457 00:22:23,370 --> 00:22:25,800 Es nolikšu instrukcijas atpakaļ uz augšu sekundē. 458 00:22:25,800 --> 00:22:27,990 Un tad mēs gatavojamies iet pa pseudocode, un kods 459 00:22:27,990 --> 00:22:29,230 to dzīvot kā grupa. 460 00:22:29,230 --> 00:22:31,640 >> Ja Jums ir kādi jautājumi, kamēr jūs esat strādā pie tā, justies brīvi, lai palielinātu 461 00:22:31,640 --> 00:22:34,260 savu roku, un es nākšu apkārt un atbildēt uz tiem. 462 00:22:34,260 --> 00:22:37,020 463 00:22:37,020 --> 00:22:39,330 >> STUDENT 7: Vai es varu zvēliens papīra? 464 00:22:39,330 --> 00:22:41,537 >> Jason Hirschhorn: Kas notiek? 465 00:22:41,537 --> 00:26:46,047 466 00:26:46,047 --> 00:26:48,043 >> [Ierakstot SOUNDS] 467 00:26:48,043 --> 00:26:48,730 >> Jason Hirschhorn: OK. 468 00:26:48,730 --> 00:26:51,710 Iesim pa pseudocode pirmkārt, un tad es došu jums pāris vairāk 469 00:26:51,710 --> 00:26:52,960 minūtes, lai pabeigtu kodēšanas. 470 00:26:52,960 --> 00:26:55,540 471 00:26:55,540 --> 00:26:58,650 >> Kuri vēlas sākt mani off ar pirmo līniju 472 00:26:58,650 --> 00:27:00,030 pseudocode šo funkciju? 473 00:27:00,030 --> 00:27:03,330 474 00:27:03,330 --> 00:27:05,740 >> STUDENT 8: Pārbaudiet, lai pārliecinātos, ka jums tika dotas divas failus. 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 Un, ja mēs ne? 478 00:27:22,990 --> 00:27:25,974 >> STUDENT 8: Es gribētu atgriezties 0. 479 00:27:25,974 --> 00:27:27,872 >> Jason Hirschhorn: Vai mums vajadzētu atgriezties 0? 480 00:27:27,872 --> 00:27:30,182 >> STUDENT 8: Return - 481 00:27:30,182 --> 00:27:30,650 nobloķēšanas. 482 00:27:30,650 --> 00:27:30,850 Piedodiet. 483 00:27:30,850 --> 00:27:31,210 >> Jason Hirschhorn: Jā. 484 00:27:31,210 --> 00:27:32,710 Droši vien ne 0. 485 00:27:32,710 --> 00:27:34,680 Tāpēc, ka 0 nozīmē, ka viss bija labi. 486 00:27:34,680 --> 00:27:35,030 OK. 487 00:27:35,030 --> 00:27:36,730 Tātad tas ir pirmais rindā gada pseudocode. 488 00:27:36,730 --> 00:27:38,715 Kas ir otrais rindā pseudocode? 489 00:27:38,715 --> 00:27:40,630 >> STUDENT 9: Atvērta gan failus? 490 00:27:40,630 --> 00:27:41,880 >> Jason Hirschhorn: atveriet abus failus. 491 00:27:41,880 --> 00:27:49,970 492 00:27:49,970 --> 00:27:50,920 OK? 493 00:27:50,920 --> 00:27:52,850 >> STUDENT 10: Pārbaudiet, lai redzētu, Ja fails ir NULL? 494 00:27:52,850 --> 00:28:10,906 495 00:28:10,906 --> 00:28:12,580 >> Jason Hirschhorn: Pārbaudiet, Noteikti ne, ir spēkā. 496 00:28:12,580 --> 00:28:15,800 Kā malā - 497 00:28:15,800 --> 00:28:17,540 slash 0 - 498 00:28:17,540 --> 00:28:18,887 ir tas, ka NULL? 499 00:28:18,887 --> 00:28:20,080 >> STUDENT 11: Nē. 500 00:28:20,080 --> 00:28:21,190 >> Jason Hirschhorn: Tas nav NULL. 501 00:28:21,190 --> 00:28:23,400 Ka sauc NULL terminatoru. 502 00:28:23,400 --> 00:28:25,580 Tas ir faktiski uzrakstīti tikai ar vienu l. 503 00:28:25,580 --> 00:28:28,580 Tāpēc pārbaudi kaut ko pret šo - kas ir faktiski raksturs - 504 00:28:28,580 --> 00:28:31,710 lai pārbaudītu kaut ko, pret ko nav tāds pats kā pārbaudi, lai noskaidrotu, vai tas 505 00:28:31,710 --> 00:28:32,690 vienāds NULL. 506 00:28:32,690 --> 00:28:34,100 >> Un daži cilvēki - 507 00:28:34,100 --> 00:28:36,040 par to viktorīnas un to problēmu komplekti - ir ieguvuši 508 00:28:36,040 --> 00:28:36,890 divi no tiem sajaukt. 509 00:28:36,890 --> 00:28:38,830 Bet divi no tiem ir faktiski atšķiras. 510 00:28:38,830 --> 00:28:40,220 Viens beidzas virkni - 511 00:28:40,220 --> 00:28:43,210 viens ir rādītājs līdz 0. 512 00:28:43,210 --> 00:28:46,490 >> STUDENT 12: Kāpēc jūs pārbaudīt, lai pārliecinieties, ka faili nav NULL 513 00:28:46,490 --> 00:28:48,670 pirms to atvēršanas? 514 00:28:48,670 --> 00:28:54,772 >> Jason Hirschhorn: So atvērts ietaupa kaut kas šajā lietā. 515 00:28:54,772 --> 00:28:57,780 Un, ja jūs iet atpakaļ šeit - 516 00:28:57,780 --> 00:28:59,520 tāpēc šī pozīcija - fopen - 517 00:28:59,520 --> 00:29:05,300 dos Jums adresi un veikalu ka adrese failu, ja tas darbojas. 518 00:29:05,300 --> 00:29:07,650 Ja tas nedarbojas, tad saglabās NULL - 519 00:29:07,650 --> 00:29:08,020 >> STUDENT 12: Oh. 520 00:29:08,020 --> 00:29:08,180 OK. 521 00:29:08,180 --> 00:29:08,500 Got jums. 522 00:29:08,500 --> 00:29:09,050 >> Jason Hirschhorn: failā. 523 00:29:09,050 --> 00:29:11,990 Tātad, jūs nevarat pārbaudīt NULL Pirms esat atvēris tos. 524 00:29:11,990 --> 00:29:13,520 NULL ir kaut kas nebija strādā pareizi. 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 Tātad, pārliecinieties, neviena no tām nav? 528 00:29:22,590 --> 00:29:23,200 Vai ir? 529 00:29:23,200 --> 00:29:23,770 Ko mēs domājam? 530 00:29:23,770 --> 00:29:24,310 Mēs iet ar to. 531 00:29:24,310 --> 00:29:24,520 >> STUDENT 13: Vai. 532 00:29:24,520 --> 00:29:25,020 >> Jason Hirschhorn: Vai? 533 00:29:25,020 --> 00:29:25,930 Ne ir? 534 00:29:25,930 --> 00:29:26,350 >> STUDENT 13: Vai. 535 00:29:26,350 --> 00:29:26,390 >> Jason Hirschhorn: OK. 536 00:29:26,390 --> 00:29:28,510 Mēs, šķiet, ir dažas vienprātība par to. 537 00:29:28,510 --> 00:29:30,520 Neviena no tām nav NULL. 538 00:29:30,520 --> 00:29:32,250 Labi, nākamais līnija pseudocode. 539 00:29:32,250 --> 00:29:33,600 Kas man nav devis līnijas vēl? 540 00:29:33,600 --> 00:29:37,350 541 00:29:37,350 --> 00:29:38,295 Gaidīsim tevi. 542 00:29:38,295 --> 00:29:39,020 Jā. 543 00:29:39,020 --> 00:29:40,895 >> STUDENT 14: Jums ir lasīt no pirmā faila? 544 00:29:40,895 --> 00:29:42,290 >> Jason Hirschhorn: OK. 545 00:29:42,290 --> 00:29:46,240 >> STUDENT 14: Vai mēs izmantojam fscanf vai kaut ko, piemēram, ka pirmā faila? 546 00:29:46,240 --> 00:29:50,650 >> Jason Hirschhorn: Tātad, mēs vēlamies, lai nolasīt no pirmā faila un - 547 00:29:50,650 --> 00:29:51,900 pieņemsim, nodot, ka tieši šeit. 548 00:29:51,900 --> 00:30:00,600 549 00:30:00,600 --> 00:30:01,880 Nolasīt no avota faila. 550 00:30:01,880 --> 00:30:05,370 Un tad, ko mēs darām, kad mēs nolasīt no avota faila? 551 00:30:05,370 --> 00:30:06,620 Kāds cits? 552 00:30:06,620 --> 00:30:09,150 553 00:30:09,150 --> 00:30:12,190 >> STUDENT 15: Rakstiet uz mērķa fails? 554 00:30:12,190 --> 00:30:22,080 555 00:30:22,080 --> 00:30:25,620 >> Jason Hirschhorn: Mēs rakstām mērķa fails, un - 556 00:30:25,620 --> 00:30:26,210 OK. 557 00:30:26,210 --> 00:30:30,030 Ko vēl mēs trūkst? 558 00:30:30,030 --> 00:30:32,460 Kāds cits, kas man nav devis līnija koda vēl - no pseudocode. 559 00:30:32,460 --> 00:30:33,510 Jā. 560 00:30:33,510 --> 00:30:36,540 >> STUDENT 16: Varbūt jūs vienmēr varat pārbaudīt vai tur ir kaut kas, lai lasīt, 561 00:30:36,540 --> 00:30:37,970 piemēram, nākamajā rindā? 562 00:30:37,970 --> 00:30:39,550 Tas ir kā nākamajā rindiņā, redzēt, ja tā eksistē. 563 00:30:39,550 --> 00:30:40,660 >> [ELECTRONIC BEEP] 564 00:30:40,660 --> 00:30:41,095 >> Jason Hirschhorn: Hmm. 565 00:30:41,095 --> 00:30:43,120 Tas ir mans journaling programmatūru. 566 00:30:43,120 --> 00:30:43,580 Yeah? 567 00:30:43,580 --> 00:30:44,960 >> STUDENT 16: Jā. 568 00:30:44,960 --> 00:30:48,940 >> Jason Hirschhorn: Tā sniedz tas man vēl vienu reizi. 569 00:30:48,940 --> 00:30:51,640 >> STUDENT 16: Pārbaudiet, vai tur ir vēl nākamais līnija no 570 00:30:51,640 --> 00:30:52,920 avota failu, lai izlasītu. 571 00:30:52,920 --> 00:30:53,500 >> Jason Hirschhorn: OK. 572 00:30:53,500 --> 00:30:56,060 Tāpēc mēs nelasām līnijas - lasīja baiti šeit - 573 00:30:56,060 --> 00:30:57,590 bet tu esi pareizi. 574 00:30:57,590 --> 00:31:00,040 Mēs vēlamies, lai lasīt un rakstīt, kamēr ir ne vairāk baiti. 575 00:31:00,040 --> 00:31:11,430 576 00:31:11,430 --> 00:31:11,735 OK. 577 00:31:11,735 --> 00:31:16,940 Un tāpēc tie būtu patiešām ir izrobota mazliet, jo viņi ar tur. 578 00:31:16,940 --> 00:31:17,470 Tiesības? 579 00:31:17,470 --> 00:31:20,620 Kamēr mēs esam no baitu, mēs ejam, lai nolasīt no avota faila un rakstīt 580 00:31:20,620 --> 00:31:22,160 uz mērķa failā. 581 00:31:22,160 --> 00:31:24,510 >> Un tad, kas ir pēdējais līnija pseudocode? 582 00:31:24,510 --> 00:31:26,380 Kāds, kurš nav sniegta man kaut ko vēl. 583 00:31:26,380 --> 00:31:29,270 584 00:31:29,270 --> 00:31:30,260 >> STUDENT 17: Aizveriet failus? 585 00:31:30,260 --> 00:31:31,510 >> Jason Hirschhorn: Tieši tā. 586 00:31:31,510 --> 00:31:36,370 587 00:31:36,370 --> 00:31:37,450 Aizveriet failus. 588 00:31:37,450 --> 00:31:38,400 Tātad tur ir mūsu pseudocode. 589 00:31:38,400 --> 00:31:41,870 Es esmu gatavojas nodot pseudocode stājas gedit, un pēc pāris minūtēm mēs 590 00:31:41,870 --> 00:31:44,626 tiks kodu kopā. 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 Ļaujiet mums sākt kā grupa. 594 00:33:58,290 --> 00:33:59,940 Nishant, man ir mana jaunu failu. 595 00:33:59,940 --> 00:34:01,130 Esmu tikko atvēra šo augšu. 596 00:34:01,130 --> 00:34:01,880 Untitled Document 1. 597 00:34:01,880 --> 00:34:05,490 Kas ir pirmā lieta, ko man vajadzētu darīt? 598 00:34:05,490 --> 00:34:07,040 >> Nishant: Iekļaut bibliotēkas? 599 00:34:07,040 --> 00:34:08,219 >> Jason Hirschhorn: OK. 600 00:34:08,219 --> 00:34:11,070 Kas bibliotēkas? 601 00:34:11,070 --> 00:34:17,570 >> Nishant: stdio.h, stdlib.h, es ticu? 602 00:34:17,570 --> 00:34:18,000 >> Jason Hirschhorn: OK. 603 00:34:18,000 --> 00:34:21,592 Kas ir stdlib atrast? 604 00:34:21,592 --> 00:34:23,010 >> Nishant: Es aizmirsu. 605 00:34:23,010 --> 00:34:23,219 >> Jason Hirschhorn: OK. 606 00:34:23,219 --> 00:34:24,179 Tā ietver stdio. 607 00:34:24,179 --> 00:34:28,630 Kas man jādara, pat pirms Es sāktu kodēšanas? 608 00:34:28,630 --> 00:34:29,710 >> Nishant: Uzrakstiet header? 609 00:34:29,710 --> 00:34:31,830 >> Jason Hirschhorn: Kā es varu to krāsains? 610 00:34:31,830 --> 00:34:34,060 >> [interposing BALSIS] 611 00:34:34,060 --> 00:34:35,040 >> Nishant: Kā jums tas krāsā? 612 00:34:35,040 --> 00:34:38,060 >> Jason Hirschhorn: Kā es krāsu kodēšanas? 613 00:34:38,060 --> 00:34:38,570 >> Nishant: Es nezinu. 614 00:34:38,570 --> 00:34:38,830 Oh. 615 00:34:38,830 --> 00:34:39,389 Ietaupīt. 616 00:34:39,389 --> 00:34:39,929 >> Jason Hirschhorn: Save. 617 00:34:39,929 --> 00:34:40,270 Jā. 618 00:34:40,270 --> 00:34:41,760 Man vajadzētu saglabāt to kā. C. 619 00:34:41,760 --> 00:34:46,239 Tāpēc saglabājiet to uz darbvirsmas kā cp.c. 620 00:34:46,239 --> 00:34:47,280 Salds. 621 00:34:47,280 --> 00:34:51,199 Un, ja es gribu, lai iegūtu pilnu stilu punktus, ko man būtu 622 00:34:51,199 --> 00:34:53,085 ietver augšpusē? 623 00:34:53,085 --> 00:34:58,390 >> Nishant: Jūs varētu uzrakstīt savu vārdu, vārdu programmas, un lai 624 00:34:58,390 --> 00:34:59,640 programmas, kā arī? 625 00:34:59,640 --> 00:35:08,400 626 00:35:08,400 --> 00:35:10,040 >> Jason Hirschhorn: Izskatās labi. 627 00:35:10,040 --> 00:35:10,470 Lielisks. 628 00:35:10,470 --> 00:35:12,940 Tātad jūs esat sācis mums off perfekti. 629 00:35:12,940 --> 00:35:13,720 # Ietver - 630 00:35:13,720 --> 00:35:15,365 mēs arī rakstīt - 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 Tāpēc es domāju, ka es esmu viss, kas iet. 634 00:35:33,520 --> 00:35:38,003 Kam ir pirmajā rindā kodu par mani - vai pirmās rindiņas kodu, kas 635 00:35:38,003 --> 00:35:41,280 tā veiks, lai apmierinātu mūsu pirmo komentēt pseudocode? 636 00:35:41,280 --> 00:35:41,985 Jums. 637 00:35:41,985 --> 00:35:48,780 >> STUDENT 18: Vai tas nebūtu int argc, un tad apdedzina * argv? 638 00:35:48,780 --> 00:35:49,490 >> Jason Hirschhorn: Es domāju, ka tev taisnība. 639 00:35:49,490 --> 00:35:56,270 Pieņemsim mainīt to uz int galvenais, atvērt paren, int argc, komats, char * argv? 640 00:35:56,270 --> 00:35:57,150 Piemēram, ka? 641 00:35:57,150 --> 00:35:57,410 >> STUDENT 18: iekavās. 642 00:35:57,410 --> 00:35:58,260 >> Jason Hirschhorn: iekavās. 643 00:35:58,260 --> 00:35:59,860 Atvērt bracket, tuvu bracket, close vecākiem. 644 00:35:59,860 --> 00:36:00,240 Perfekta. 645 00:36:00,240 --> 00:36:02,160 Tagad es varētu veikt komandrindas argumentus. 646 00:36:02,160 --> 00:36:02,430 OK. 647 00:36:02,430 --> 00:36:04,250 Nodrošinātu, ka mēs esam dota divus failus. 648 00:36:04,250 --> 00:36:07,905 Jūs varat dot man, ka labi. 649 00:36:07,905 --> 00:36:09,180 >> STUDENT 18: Ja argc - 650 00:36:09,180 --> 00:36:11,060 tas viens nav vienāds 3. 651 00:36:11,060 --> 00:36:14,360 >> Jason Hirschhorn: Ja atklātie paren argc nav vienāds 3? 652 00:36:14,360 --> 00:36:16,970 >> STUDENT 18: Jā, jūs atpakaļ 1 vai neko. 653 00:36:16,970 --> 00:36:17,460 >> Jason Hirschhorn: Sorry. 654 00:36:17,460 --> 00:36:19,120 >> STUDENT 18: Atgriešanās 1 vai neko. 655 00:36:19,120 --> 00:36:20,270 >> Jason Hirschhorn: Atgriešanās 1. 656 00:36:20,270 --> 00:36:22,230 OK? 657 00:36:22,230 --> 00:36:22,970 Lieliski. 658 00:36:22,970 --> 00:36:24,290 Atvērt abus failus. 659 00:36:24,290 --> 00:36:26,160 Kas var man palīdzēt atvērt abus failus? 660 00:36:26,160 --> 00:36:28,125 Kas man nav devis kodu vēl? 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: Tātad visas caps F-I-L-E star avots. 664 00:36:36,145 --> 00:36:39,390 665 00:36:39,390 --> 00:36:40,920 >> Jason Hirschhorn: Es eju izņemt patskaņi. 666 00:36:40,920 --> 00:36:41,570 Tie ir cool. 667 00:36:41,570 --> 00:36:42,716 Tas ir tāpat kā Tumblr. 668 00:36:42,716 --> 00:36:44,610 >> STUDENT 18: Vienāds fopen - 669 00:36:44,610 --> 00:36:46,612 >> Jason Hirschhorn: Vienāds fopen? 670 00:36:46,612 --> 00:36:49,870 >> STUDENT 18: Open paren, argv, open kronšteins. 671 00:36:49,870 --> 00:36:50,055 >> Jason Hirschhorn: Pagaidiet. 672 00:36:50,055 --> 00:36:50,240 Piedodiet. 673 00:36:50,240 --> 00:36:51,050 Atvērt paren. 674 00:36:51,050 --> 00:36:51,456 OK. 675 00:36:51,456 --> 00:36:53,080 >> STUDENT 18: Jā. 676 00:36:53,080 --> 00:36:55,110 Argv sub 1. 677 00:36:55,110 --> 00:36:55,860 >> Jason Hirschhorn: Sub 1? 678 00:36:55,860 --> 00:36:56,140 >> STUDENT 18: Jā. 679 00:36:56,140 --> 00:36:58,540 Argv open kronšteins 1 - 680 00:36:58,540 --> 00:36:59,730 Jā. 681 00:36:59,730 --> 00:37:06,470 Un tad komats, un tad atveriet dubultā quote, r, dubultā quote, 682 00:37:06,470 --> 00:37:08,250 close paren, semikolu. 683 00:37:08,250 --> 00:37:09,450 >> Jason Hirschhorn: Sweet. 684 00:37:09,450 --> 00:37:10,950 Un ko par otru? 685 00:37:10,950 --> 00:37:16,030 >> STUDENT 18: Ļoti līdzīgs, bet tā vietā S-R-C, jūs to sauc D-S-T. 686 00:37:16,030 --> 00:37:17,060 >> Jason Hirschhorn: Oo! 687 00:37:17,060 --> 00:37:17,772 Man patīk, ka. 688 00:37:17,772 --> 00:37:20,010 >> STUDENT 18: Tikai D-S-T. Jā. 689 00:37:20,010 --> 00:37:23,057 Un tad ARGV, atklātu kronšteinu, 2. 690 00:37:23,057 --> 00:37:23,200 Jā. 691 00:37:23,200 --> 00:37:26,720 Un tad w nevis r. 692 00:37:26,720 --> 00:37:27,620 Jā. 693 00:37:27,620 --> 00:37:29,630 >> Jason Hirschhorn: Great. 694 00:37:29,630 --> 00:37:31,360 Nākamais pāris līnijām. 695 00:37:31,360 --> 00:37:34,040 Arī tad, ja kāds ir lietas, ko pievienot līniju, ko mēs esam darījuši, justies brīvi 696 00:37:34,040 --> 00:37:35,690 pievienot tos kā labi. 697 00:37:35,690 --> 00:37:37,520 Pārbaudiet, lai pārliecinātos, ka neviena no tām nav NULL. 698 00:37:37,520 --> 00:37:41,450 Kas var sniegt man kodu, man ir nepieciešams, lai izpildītu šo līniju pseudocode? 699 00:37:41,450 --> 00:37:44,430 700 00:37:44,430 --> 00:37:45,870 Strēlnieks. 701 00:37:45,870 --> 00:37:58,645 >> ARCHER: Ja src vienāds vienāds NULL vai DST vienāds vienāds 702 00:37:58,645 --> 00:38:04,590 NULL, tad jūs atpakaļ - 703 00:38:04,590 --> 00:38:07,130 704 00:38:07,130 --> 00:38:07,976 >> Jason Hirschhorn: Kas? 705 00:38:07,976 --> 00:38:08,890 >> ARCHER: Atgriešanās 2? 706 00:38:08,890 --> 00:38:09,760 >> Jason Hirschhorn: Atgriešanās 2. 707 00:38:09,760 --> 00:38:14,400 Tātad, ja atklāta paren src vienāds vienāds NULL, vai - 708 00:38:14,400 --> 00:38:15,590 lai kas thing's - caurules? 709 00:38:15,590 --> 00:38:16,346 Caurule? 710 00:38:16,346 --> 00:38:17,140 Mēs to saucam caurules. 711 00:38:17,140 --> 00:38:22,340 Caurule, caurules, DST vienāds vienāds NULL, atgriezties 2. 712 00:38:22,340 --> 00:38:23,900 OK? 713 00:38:23,900 --> 00:38:26,060 Kamēr mēs esam no baitu - 714 00:38:26,060 --> 00:38:29,820 mēs veida izlaidis vairāk nekā šajā etapā pseudocode daļa dodas uz šejieni. 715 00:38:29,820 --> 00:38:31,970 >> Bet, kamēr mēs esam no baitu - Ko tas izklausās? 716 00:38:31,970 --> 00:38:34,680 Kāda veida C struktūru - 717 00:38:34,680 --> 00:38:36,160 bet es nedomāju izmantot vārdu struktūru, jo mēs esam gatavojas sākt lietot 718 00:38:36,160 --> 00:38:37,350 ka citos gadījumos - 719 00:38:37,350 --> 00:38:39,495 bet C instruments tas, ka izklausās? 720 00:38:39,495 --> 00:38:39,970 >> STUDENT 19: cilpa. 721 00:38:39,970 --> 00:38:40,980 >> Jason Hirschhorn: cilpa. 722 00:38:40,980 --> 00:38:43,060 Izklausās cilpu. 723 00:38:43,060 --> 00:38:49,670 Tātad, kas var sniegt man pirmo rindiņu no cilpas kodu tieši šeit? 724 00:38:49,670 --> 00:38:56,320 725 00:38:56,320 --> 00:39:01,980 Jūs varat arī izvēlēties, kāda veida cilpa, ko vēlaties, ja jūs varētu man 726 00:39:01,980 --> 00:39:03,215 šī līnija kodu. 727 00:39:03,215 --> 00:39:04,150 Ir trīs veidu. 728 00:39:04,150 --> 00:39:06,530 Jums izvēlēties. 729 00:39:06,530 --> 00:39:08,080 Es gribētu ieteikt vienu no tiem. 730 00:39:08,080 --> 00:39:08,410 Avi. 731 00:39:08,410 --> 00:39:09,230 Kuriem viens jūs vēlaties? 732 00:39:09,230 --> 00:39:09,960 >> AVI: PAR. 733 00:39:09,960 --> 00:39:11,460 >> Jason Hirschhorn: PAR. 734 00:39:11,460 --> 00:39:15,180 >> AVI: int i ir vienāds ar nulli. 735 00:39:15,180 --> 00:39:17,360 >> Jason Hirschhorn: OK. 736 00:39:17,360 --> 00:39:18,570 >> AVI: Šī daļa es neesmu pārliecināts par to. 737 00:39:18,570 --> 00:39:29,080 Bet i ir mazāks par izmēru gada zvaigžņu avots? 738 00:39:29,080 --> 00:39:31,128 Es neesmu pārliecināts par to. 739 00:39:31,128 --> 00:39:32,580 >> Jason Hirschhorn: OK. 740 00:39:32,580 --> 00:39:35,870 >> AVI: Jo jūs vēlaties izmērs failu, vai ne? 741 00:39:35,870 --> 00:39:41,090 >> Jason Hirschhorn: Tātad tas, iespējams, nebūs dod mums izmēru faktisko 742 00:39:41,090 --> 00:39:43,010 failu baitos. 743 00:39:43,010 --> 00:39:47,680 Tātad, ko vēl mēs varētu darīt? 744 00:39:47,680 --> 00:39:48,810 Kas ir cita veida cilpa? 745 00:39:48,810 --> 00:39:50,180 Vai mums vajadzētu pieturēties pie cilpa? 746 00:39:50,180 --> 00:39:55,350 747 00:39:55,350 --> 00:39:57,900 >> STUDENT 20: Vai jūs varētu darīt, kamēr cilpa? 748 00:39:57,900 --> 00:40:01,350 Un tad, ko jūs vēlaties darīt, ir you'd - 749 00:40:01,350 --> 00:40:03,930 jo mums ir char * faila. 750 00:40:03,930 --> 00:40:07,950 Tātad, ja mēs tikai glabāt palielināšanai, kas kamēr mēs gribētu atrast NULLES rakstzīmi 751 00:40:07,950 --> 00:40:08,500 beigas tā? 752 00:40:08,500 --> 00:40:11,130 Vai nē, ir tas, ka nav kā faili darbs? 753 00:40:11,130 --> 00:40:14,300 >> Jason Hirschhorn: Tātad, mēs varam glabāt palielināšanai char * 754 00:40:14,300 --> 00:40:16,340 kamēr mēs atrodam nulles - 755 00:40:16,340 --> 00:40:18,580 >> STUDENT 20: Būtībā glabāt notiek raksturu pēc rakstura, kamēr mēs hit 756 00:40:18,580 --> 00:40:21,250 faila beigas. 757 00:40:21,250 --> 00:40:21,600 >> Jason Hirschhorn: Jā. 758 00:40:21,600 --> 00:40:22,560 Tātad tas, ko mēs vēlamies darīt. 759 00:40:22,560 --> 00:40:24,545 Mēs vēlamies, lai saglabātu lasījumā, raksturs pēc rakstura, līdz brīdim, kad mēs nokļūt 760 00:40:24,545 --> 00:40:25,080 faila beigas. 761 00:40:25,080 --> 00:40:25,375 >> STUDENT 20: Jā. 762 00:40:25,375 --> 00:40:25,860 Atrast - 763 00:40:25,860 --> 00:40:28,540 kas ir beigas, vai bremžu signāls beigās teksta failu. 764 00:40:28,540 --> 00:40:28,620 >> Jason Hirschhorn: OK. 765 00:40:28,620 --> 00:40:30,140 Tātad, kad mēs nokļūt līdz beigām failu - Kā mēs zinām, mēs esam sasnieguši 766 00:40:30,140 --> 00:40:33,200 beigu faila? 767 00:40:33,200 --> 00:40:34,710 Ja es esmu aicinot - 768 00:40:34,710 --> 00:40:35,910 tāpēc pieņemsim solis atpakaļ. 769 00:40:35,910 --> 00:40:37,550 Kas ir funkcija? 770 00:40:37,550 --> 00:40:39,360 Iesim uz šo pozīciju šeit. 771 00:40:39,360 --> 00:40:40,630 Nolasīt no avota faila. 772 00:40:40,630 --> 00:40:41,880 Kas var dot man, ka rindiņu kodu? 773 00:40:41,880 --> 00:40:45,592 774 00:40:45,592 --> 00:40:47,590 >> STUDENT 21: Fscanf? 775 00:40:47,590 --> 00:40:49,110 >> Jason Hirschhorn: Fscanf. 776 00:40:49,110 --> 00:40:49,510 OK. 777 00:40:49,510 --> 00:40:52,240 Ko darīt, ja es gribu lasīt, ir ļoti Konkrētāk, viens baits? 778 00:40:52,240 --> 00:40:55,012 779 00:40:55,012 --> 00:40:56,860 >> STUDENT 21: Es nezinu. 780 00:40:56,860 --> 00:40:57,110 >> Jason Hirschhorn: OK. 781 00:40:57,110 --> 00:40:59,380 Vēl vienkāršāk, nekā fscanf - to, kas ir - 782 00:40:59,380 --> 00:41:01,890 Es gribu lasīt no avota faila? 783 00:41:01,890 --> 00:41:03,720 Nolasīt no avota faila. 784 00:41:03,720 --> 00:41:04,850 Kas ir funkcija - jā. 785 00:41:04,850 --> 00:41:05,380 >> STUDENT 22: Tas ir fread? 786 00:41:05,380 --> 00:41:06,070 >> Jason Hirschhorn: fread. 787 00:41:06,070 --> 00:41:07,550 Es domāju, pieņemsim stick ar ka viens tagad. 788 00:41:07,550 --> 00:41:10,380 789 00:41:10,380 --> 00:41:13,650 Kādus argumentus tas fread ņemt? 790 00:41:13,650 --> 00:41:17,410 >> STUDENT 22: Iespējams, faila tips, un tad vietu failā? 791 00:41:17,410 --> 00:41:19,550 >> Jason Hirschhorn: Ko es varu ierakstīt šeit , lai noskaidrotu, kāda veida argumentus 792 00:41:19,550 --> 00:41:20,950 fread notiek? 793 00:41:20,950 --> 00:41:23,710 >> VAIRĀKAS Studenti: Man fread. 794 00:41:23,710 --> 00:41:24,740 >> Jason Hirschhorn: Man fread un fwrite. 795 00:41:24,740 --> 00:41:25,980 Izskatās, ka tie žaut kopā. 796 00:41:25,980 --> 00:41:29,589 Tātad fread notiek kā daudz argumentu? 797 00:41:29,589 --> 00:41:30,920 >> STUDENT 23: Four. 798 00:41:30,920 --> 00:41:32,690 >> Jason Hirschhorn: Tas aizņem četri argumenti. 799 00:41:32,690 --> 00:41:41,100 Tas aizņem rādītāju, izmēru, un ka lieta, kas ir dīvaini, un daži failu. 800 00:41:41,100 --> 00:41:42,000 OK? 801 00:41:42,000 --> 00:41:43,990 Pieņemsim lasīt par to šeit. 802 00:41:43,990 --> 00:41:49,370 "Funkcija fread lasa n memb elementi datus, katra izmērs baiti 803 00:41:49,370 --> 00:41:53,840 garš, no strauta norādīja uz ko plūsma, uzglabājot tos tajā vietā 804 00:41:53,840 --> 00:41:56,170 sniedza rādītājs. " 805 00:41:56,170 --> 00:41:57,960 >> Tātad četri argumenti. 806 00:41:57,960 --> 00:42:04,510 Kāpēc man vienkārši kopēt to, un ielīmēt to šeit. 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 Tātad, kas var sākt aizpildot šie argumenti par mani? 810 00:42:13,673 --> 00:42:15,840 Avi. 811 00:42:15,840 --> 00:42:17,720 >> AVI: Izņemiet tukšumu. 812 00:42:17,720 --> 00:42:20,530 Likts tikai src. 813 00:42:20,530 --> 00:42:23,142 Izņemt rādītāju un zvaigzne. 814 00:42:23,142 --> 00:42:26,102 Put src. 815 00:42:26,102 --> 00:42:27,050 Tad - 816 00:42:27,050 --> 00:42:28,500 >> Jason Hirschhorn: Tāpēc es esmu gatavojas pārtraukt jūs tur, jo tas ir nepareizi. 817 00:42:28,500 --> 00:42:32,590 818 00:42:32,590 --> 00:42:34,710 Tev taisnība, ar SRC, bet ja būtu src doties? 819 00:42:34,710 --> 00:42:35,960 >> [interposing BALSIS] 820 00:42:35,960 --> 00:42:38,976 821 00:42:38,976 --> 00:42:41,610 >> Jason Hirschhorn: Tas būtu iet vairāk nekā šeit. 822 00:42:41,610 --> 00:42:43,790 Tas ir SRC - mūsu SRC ir veids. 823 00:42:43,790 --> 00:42:44,610 Apskatīsim šeit. 824 00:42:44,610 --> 00:42:49,610 Tas ir lūdzot tipa failu *, mēs faktiski parasti redzēt, piemēram, ka. 825 00:42:49,610 --> 00:42:57,630 Tāpēc tas ir lūdzot argumentu tipa FILE * sauc plūsma, kas ir src. 826 00:42:57,630 --> 00:42:58,480 OK? 827 00:42:58,480 --> 00:43:00,410 >> Kāda izmēra lietas darīt Mēs vēlamies, lai lasītu? 828 00:43:00,410 --> 00:43:03,340 Es tev to problēmas apraksts. 829 00:43:03,340 --> 00:43:04,370 >> STUDENT 24: One baits laikā. 830 00:43:04,370 --> 00:43:05,340 >> Jason Hirschhorn: viens baits. 831 00:43:05,340 --> 00:43:08,205 Cik liela ir baitu? 832 00:43:08,205 --> 00:43:11,642 Tā izmērs ir baitos, lai to, ko es varu likt tieši tur? 833 00:43:11,642 --> 00:43:12,910 >> STUDENT 25: One. 834 00:43:12,910 --> 00:43:14,730 >> Jason Hirschhorn: One. 835 00:43:14,730 --> 00:43:17,020 Tiesības. 836 00:43:17,020 --> 00:43:19,940 Tā izmērs ir vienības baitu, tā 1 ir 1 baits. 837 00:43:19,940 --> 00:43:22,284 Cik es gribu lasīt laikā. 838 00:43:22,284 --> 00:43:23,520 >> STUDENT 26: Viens? 839 00:43:23,520 --> 00:43:24,270 >> Jason Hirschhorn: Viena lieta. 840 00:43:24,270 --> 00:43:28,540 Es gribu lasīt, viena lieta izmēru 1, viens koduma laikā. 841 00:43:28,540 --> 00:43:32,110 Un kur es varu likt to, kad es izlasīju to? 842 00:43:32,110 --> 00:43:35,050 843 00:43:35,050 --> 00:43:36,510 >> STUDENT 27: Destination? 844 00:43:36,510 --> 00:43:39,270 >> Jason Hirschhorn: Tāpēc es nevaru likt tas taisni galamērķi. 845 00:43:39,270 --> 00:43:40,800 >> STUDENT 28: Jūs esat gonna likts tā uz trešo rādītājs? 846 00:43:40,800 --> 00:43:41,780 >> STUDENT 27 uz galamērķi. 847 00:43:41,780 --> 00:43:42,270 >> Jason Hirschhorn: OK. 848 00:43:42,270 --> 00:43:42,630 Jā. 849 00:43:42,630 --> 00:43:46,820 >> STUDENT 29: Jūs varat paziņot, kaut ko darbojas kā pagaidu uzglabāšanas agrāk. 850 00:43:46,820 --> 00:43:47,350 >> Jason Hirschhorn: OK. 851 00:43:47,350 --> 00:43:50,080 Dodiet man to. 852 00:43:50,080 --> 00:43:53,930 >> STUDENT 29: Vēl viens fails rādītājs, varbūt? 853 00:43:53,930 --> 00:43:54,220 >> Jason Hirschhorn: OK. 854 00:43:54,220 --> 00:43:55,585 Tāpēc tas nav spēkā zvaigzne - 855 00:43:55,585 --> 00:43:57,750 tas ir veids neesošu zvaigzne, tāpēc tā nav jābūt failu rādītājs. 856 00:43:57,750 --> 00:44:02,520 Un, ja es lasu vienu baitu, kur varētu būt laba vieta 857 00:44:02,520 --> 00:44:03,850 glabāt vienu baitu? 858 00:44:03,850 --> 00:44:04,660 >> STUDENT 29: masīvs? 859 00:44:04,660 --> 00:44:05,770 >> Jason Hirschhorn: masīvs. 860 00:44:05,770 --> 00:44:07,730 OK. 861 00:44:07,730 --> 00:44:14,040 Un kas vēl ir kaut kas ir tikai izmērs vienu baitu? 862 00:44:14,040 --> 00:44:16,980 863 00:44:16,980 --> 00:44:18,060 >> STUDENT 30: char *? 864 00:44:18,060 --> 00:44:18,530 >> STUDENT 29: Jā. 865 00:44:18,530 --> 00:44:19,880 >> Jason Hirschhorn: char * nav viens baits. 866 00:44:19,880 --> 00:44:20,440 >> STUDENT 29: char. 867 00:44:20,440 --> 00:44:21,810 >> Jason Hirschhorn: char ir viens baits. 868 00:44:21,810 --> 00:44:22,920 Tiesības? 869 00:44:22,920 --> 00:44:26,740 Tāpēc sauksim šo buferi ir vispārējs nosaukums, ko izmanto, lai šīs lietas uzglabāt 870 00:44:26,740 --> 00:44:27,910 kaut uz laiku. 871 00:44:27,910 --> 00:44:30,880 Tāpēc es izveidot buferi. 872 00:44:30,880 --> 00:44:31,150 Tiesības? 873 00:44:31,150 --> 00:44:32,990 Bet tas aizņem tukšumu *. 874 00:44:32,990 --> 00:44:38,660 Tātad, varbūt jums ir taisnība, ka tas jābūt bufera izmērs 0. 875 00:44:38,660 --> 00:44:41,070 Tāpēc tas saglabā vienu - 876 00:44:41,070 --> 00:44:41,280 labi. 877 00:44:41,280 --> 00:44:43,560 >> Jo tas tieši šeit - char buferis ir raksturs, bet 878 00:44:43,560 --> 00:44:45,110 tas aizņem tukšumu * - 879 00:44:45,110 --> 00:44:45,870 rādītājs. 880 00:44:45,870 --> 00:44:50,640 Lai es varētu darīt, un tagad buferis ir rādītājs. 881 00:44:50,640 --> 00:44:53,214 Ko vēl es varētu darīt? 882 00:44:53,214 --> 00:44:55,775 >> STUDENT 31: Put zvaigzne blakus char. 883 00:44:55,775 --> 00:44:58,380 >> Jason Hirschhorn: Es varētu ir izveidota tā char *. 884 00:44:58,380 --> 00:45:00,216 OK. 885 00:45:00,216 --> 00:45:03,131 Kas ir vēl viena lieta, ko es varētu darīt? 886 00:45:03,131 --> 00:45:04,050 Vai iesim ar šo vienu. 887 00:45:04,050 --> 00:45:05,740 Char * buferis, lai to, ko Vai man šeit? 888 00:45:05,740 --> 00:45:08,290 889 00:45:08,290 --> 00:45:09,310 >> STUDENT 31: Buffer. 890 00:45:09,310 --> 00:45:10,560 >> Jason Hirschhorn: Buffer. 891 00:45:10,560 --> 00:45:12,640 892 00:45:12,640 --> 00:45:14,500 Buferis ir pointers uz char. 893 00:45:14,500 --> 00:45:19,480 Un šajā vietā, mēs esam liekot viens baits kaut ko mēs esam lasīt. 894 00:45:19,480 --> 00:45:19,980 Jā. 895 00:45:19,980 --> 00:45:20,700 Avi. 896 00:45:20,700 --> 00:45:21,230 >> AVI: Just a quick jautājumu. 897 00:45:21,230 --> 00:45:24,440 Vai jūs vēlaties, lai malloc buferi? 898 00:45:24,440 --> 00:45:25,930 >> Jason Hirschhorn: Kurš var atbildētu uz šo jautājumu? 899 00:45:25,930 --> 00:45:30,210 >> STUDENT 32: Nu, tas nav īsti punkts, lai kaut ko tieši tagad, tāpēc - 900 00:45:30,210 --> 00:45:32,610 >> Jason Hirschhorn: Bet vai mēs gribam malloc to? 901 00:45:32,610 --> 00:45:35,600 >> STUDENT 32: Ja tu būtu to darīt, ka veidā, es domāju, jā, jo jūs nepieciešams 902 00:45:35,600 --> 00:45:36,990 kaut kur, lai tā norādītu uz. 903 00:45:36,990 --> 00:45:38,350 >> Jason Hirschhorn: Vai mēs ir malloc to? 904 00:45:38,350 --> 00:45:40,580 >> STUDENT 33: Ja jūs gatavojas izmantot ārpus cilpa. 905 00:45:40,580 --> 00:45:42,524 >> Jason Hirschhorn: Vai mēs gatavojamies izmantot ārpus no cilpas? 906 00:45:42,524 --> 00:45:44,392 >> STUDENT 34: Jā. 907 00:45:44,392 --> 00:45:44,860 >> STUDENT 35: Pagaidiet. 908 00:45:44,860 --> 00:45:46,980 Vai mēs gribam to atzīt to cilpa aiz robežām? 909 00:45:46,980 --> 00:45:50,100 >> Jason Hirschhorn: Tāpēc es domāju, ka mums ir daži pseido kamēr cilpa, ka mēs esam 910 00:45:50,100 --> 00:45:51,950 mēģina izdomāt, ka mēs neesam gotten vēl. 911 00:45:51,950 --> 00:45:54,710 912 00:45:54,710 --> 00:45:56,010 Mums nav nepieciešams malloc to. 913 00:45:56,010 --> 00:45:59,310 Mēs esam darbojas galvenokārt, tas ir tikai gatavojas jāizmanto iekšā šo cilpu. 914 00:45:59,310 --> 00:46:00,540 Tas nav nepieciešams pastāvēt ārpus tā. 915 00:46:00,540 --> 00:46:02,340 >> Tātad, tas var būt vietējā mainīgs. 916 00:46:02,340 --> 00:46:03,925 Jums ir rādītāju uz vietējā mainīgs. 917 00:46:03,925 --> 00:46:07,984 918 00:46:07,984 --> 00:46:09,590 >> STUDENT 36: Bet tas nav norādot uz kaut ko. 919 00:46:09,590 --> 00:46:11,540 >> Jason Hirschhorn: Nē, tas nav inicializēts neko. 920 00:46:11,540 --> 00:46:12,790 Bet mēs neesam gatavojas izmantot to arī. 921 00:46:12,790 --> 00:46:15,300 Mēs ejam, lai kaut ko tas pirmo reizi mēs to izmantojam. 922 00:46:15,300 --> 00:46:16,580 Tāpēc, ka, šķiet OK. 923 00:46:16,580 --> 00:46:17,780 Tāpēc mums nav nepieciešams malloc šeit. 924 00:46:17,780 --> 00:46:19,360 Un es domāju, ka tas ir OK, kā ir. 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 Mums ir fread līniju. 928 00:46:27,190 --> 00:46:28,490 Darīsim nākamo rindiņu. 929 00:46:28,490 --> 00:46:32,984 >> Ja mēs gribam rakstīt uz failu, kas ir labs funkciju izmantot, lai to izdarītu? 930 00:46:32,984 --> 00:46:33,770 >> STUDENT 37: fwrite? 931 00:46:33,770 --> 00:46:35,140 >> STUDENT 38: fprintf? 932 00:46:35,140 --> 00:46:36,010 >> Jason Hirschhorn: fprintf ir viens. 933 00:46:36,010 --> 00:46:37,260 Kas ir vēl viens? 934 00:46:37,260 --> 00:46:37,680 >> STUDENT 39: fwrite. 935 00:46:37,680 --> 00:46:38,510 >> Jason Hirschhorn: fwrite. 936 00:46:38,510 --> 00:46:41,250 Un par mūsu mērķiem, fwrite, ko mēs šeit redzējām, ir 937 00:46:41,250 --> 00:46:42,500 iespējams, labāka izvēle. 938 00:46:42,500 --> 00:46:51,970 939 00:46:51,970 --> 00:46:53,950 Tas aizņem četrus argumentus, kā arī. 940 00:46:53,950 --> 00:46:57,570 Nishant, jūs varat dot mani argumenti? 941 00:46:57,570 --> 00:47:00,570 >> Nishant: Pirmais, kas notiek būt vienkārši buffer. 942 00:47:00,570 --> 00:47:02,210 >> Jason Hirschhorn: OK. 943 00:47:02,210 --> 00:47:06,752 >> Nishant: Otrais ir tikai būs 1. 944 00:47:06,752 --> 00:47:09,510 Trešā būs 1. 945 00:47:09,510 --> 00:47:11,470 Un ceturtais būs DST. 946 00:47:11,470 --> 00:47:18,010 947 00:47:18,010 --> 00:47:19,550 >> Jason Hirschhorn: Vai kāds ir kādi jautājumi par šo līniju? 948 00:47:19,550 --> 00:47:28,370 949 00:47:28,370 --> 00:47:29,130 Kas izskatās labi. 950 00:47:29,130 --> 00:47:29,590 OK. 951 00:47:29,590 --> 00:47:34,250 Tāpēc tagad izskatās, ka viena lieta mums esi trūkst - patiesībā, pieņemsim rakstiet 952 00:47:34,250 --> 00:47:35,090 šī pēdējā rindā. 953 00:47:35,090 --> 00:47:36,300 Aizveriet failus. 954 00:47:36,300 --> 00:47:38,880 Kas var pabeigt mūs rakstiski šīs pēdējās divas rindas? 955 00:47:38,880 --> 00:47:39,120 Jā. 956 00:47:39,120 --> 00:47:39,850 Atvainojiet, kāds ir tavs vārds? 957 00:47:39,850 --> 00:47:40,580 >> LUCY: Lucy. 958 00:47:40,580 --> 00:47:41,580 >> Jason Hirschhorn: Lucy. 959 00:47:41,580 --> 00:47:47,560 >> LUCY: fclose src un pēc tam fclose galamērķi. 960 00:47:47,560 --> 00:47:52,430 >> Jason Hirschhorn: fclose, open paren, SRC, close paren, semikols. 961 00:47:52,430 --> 00:47:53,680 Un fclose - 962 00:47:53,680 --> 00:47:57,560 963 00:47:57,560 --> 00:47:58,090 yeah? 964 00:47:58,090 --> 00:48:01,710 >> LUCY: Atvērt iekavas, DST un tad semikolu. 965 00:48:01,710 --> 00:48:02,520 >> Jason Hirschhorn: Great. 966 00:48:02,520 --> 00:48:04,338 Un ko man vajadzētu iekļaut beigās? 967 00:48:04,338 --> 00:48:05,210 >> LUCY: Atgriešanās 0. 968 00:48:05,210 --> 00:48:05,570 >> Jason Hirschhorn: Atgriešanās 0. 969 00:48:05,570 --> 00:48:06,820 Vai man ir? 970 00:48:06,820 --> 00:48:10,560 971 00:48:10,560 --> 00:48:12,590 Tikai jautājums. 972 00:48:12,590 --> 00:48:14,957 Vai mums ir jāiekļauj atpakaļ 0? 973 00:48:14,957 --> 00:48:16,240 >> VAIRĀKAS STUDENTIEM: Nē. 974 00:48:16,240 --> 00:48:16,430 >> Jason Hirschhorn: Nē. 975 00:48:16,430 --> 00:48:18,090 Galvenais tas automātiski Ja jums līdz beigām. 976 00:48:18,090 --> 00:48:20,580 Bet es domāju, ka tas ir jauki iekļaut to skaidri. 977 00:48:20,580 --> 00:48:23,860 Jo īpaši, ja mēs esam atpakaļ otru lietas, visā programmas laikā. 978 00:48:23,860 --> 00:48:24,810 OK. 979 00:48:24,810 --> 00:48:26,230 Tas ir tas, ko mēs esam trūkst - 980 00:48:26,230 --> 00:48:28,520 KAMĒR ko? 981 00:48:28,520 --> 00:48:31,630 Kas var domāt par dažiem - 982 00:48:31,630 --> 00:48:35,240 ir kāda jēga par to, kas lietas varētu iet tur? 983 00:48:35,240 --> 00:48:37,350 Pat ja tas ir tikai kaut pseudocode tāpat kā valoda? 984 00:48:37,350 --> 00:48:41,330 >> Ko mēs tiešām - ko Vai mēs gribam, lai iet līdz? 985 00:48:41,330 --> 00:48:41,980 Jā, Lucy. 986 00:48:41,980 --> 00:48:43,240 >> LUCY: faila beigas. 987 00:48:43,240 --> 00:48:44,990 >> Jason Hirschhorn: faila beigas. 988 00:48:44,990 --> 00:48:49,280 Tātad, ko jūs saprotat ar beigām failu? 989 00:48:49,280 --> 00:48:50,955 >> LUCY: Kad jūs sasniedzat faila beigas, stop. 990 00:48:50,955 --> 00:48:51,240 >> Jason Hirschhorn: OK. 991 00:48:51,240 --> 00:48:53,460 Tātad, kad mēs sasniedzam beigām failu. 992 00:48:53,460 --> 00:48:56,893 Kā mēs zinām, kad mēs esam sasnieguši faila beigas? 993 00:48:56,893 --> 00:48:59,900 >> STUDENT 40: Es domāju, ka buferis tiks iestatīts uz NULL. 994 00:48:59,900 --> 00:49:01,885 >> STUDENT 41: Buffer ir deklarēta iekšpusē cilpa. 995 00:49:01,885 --> 00:49:03,670 >> Jason Hirschhorn: Tātad jūs domājat, ka buferis tiks iestatīts uz NULL. 996 00:49:03,670 --> 00:49:05,850 Kāpēc buferis tiks iestatīts uz null? 997 00:49:05,850 --> 00:49:10,420 >> STUDENT 40: Jo, kad jūs fread, jūs mēģināt likt 998 00:49:10,420 --> 00:49:13,528 nekas buferī. 999 00:49:13,528 --> 00:49:13,980 >> Jason Hirschhorn: OK. 1000 00:49:13,980 --> 00:49:15,550 Tātad jūs domājat fread - 1001 00:49:15,550 --> 00:49:19,000 kad mēs esam sasnieguši fails, kas ir fread gatavojas darīt? 1002 00:49:19,000 --> 00:49:21,230 Es domāju, ka jautājums mums ir izdomāt. 1003 00:49:21,230 --> 00:49:21,960 Kāda fread darīt? 1004 00:49:21,960 --> 00:49:25,640 Vai tas likts Null buferī, vai tas dara kaut ko citu? 1005 00:49:25,640 --> 00:49:27,510 Kā mēs varam izdomāt, ko tā dara? 1006 00:49:27,510 --> 00:49:28,190 >> STUDENT 42: Man. 1007 00:49:28,190 --> 00:49:28,810 >> Jason Hirschhorn: Man. 1008 00:49:28,810 --> 00:49:32,280 Tātad, pieņemsim apskatīt šeit. 1009 00:49:32,280 --> 00:49:34,000 Atgriešanās vērtību. 1010 00:49:34,000 --> 00:49:39,620 Par panākumiem, fread un fwrite atpakaļ vienību skaits lasīt vai rakstīto. 1011 00:49:39,620 --> 00:49:43,700 Šis skaits ir vienāds baitu skaitu nodot tikai tad, ja izmērs ir 1. 1012 00:49:43,700 --> 00:49:47,780 Ja rodas kļūda, vai beigās fails ir sasniegts, atgriešanās vērtība ir 1013 00:49:47,780 --> 00:49:51,490 īss postenis skaits vai 0. 1014 00:49:51,490 --> 00:49:57,860 >> Tātad, par mūsu mērķiem, ja fread sasniedz faila beigas, un skan no 1015 00:49:57,860 --> 00:50:02,100 faila beigas, tur nekas pa kreisi izlasīt, kas tas notiek, lai atgrieztos? 1016 00:50:02,100 --> 00:50:03,290 >> STUDENT 43: Zero? 1017 00:50:03,290 --> 00:50:04,540 >> Jason Hirschhorn: Kas? 1018 00:50:04,540 --> 00:50:05,300 >> STUDENT 43: Zero? 1019 00:50:05,300 --> 00:50:05,690 >> Jason Hirschhorn: Zero. 1020 00:50:05,690 --> 00:50:06,940 Tas ir gatavojas atgriezties nulle. 1021 00:50:06,940 --> 00:50:09,360 1022 00:50:09,360 --> 00:50:13,010 Tātad mēs zinām, ka fread, kad mēs esam sasnieguši faila, kas notiek 1023 00:50:13,010 --> 00:50:13,690 atgriezties nulle. 1024 00:50:13,690 --> 00:50:17,460 Kā mēs varam izmantot šo, lai mūsu labā? 1025 00:50:17,460 --> 00:50:21,733 >> AVI: Jūs varat deklarēt mainīgo ārpuses cilpas sauc pārbaude. 1026 00:50:21,733 --> 00:50:27,040 Ja pārbaude ir vienāds - 1027 00:50:27,040 --> 00:50:28,190 tagad - vienu. 1028 00:50:28,190 --> 00:50:28,920 >> Jason Hirschhorn: OK. 1029 00:50:28,920 --> 00:50:38,050 >> AVI: Un tad jūs varat likt IF paziņojumu uzreiz pēc fread sakot, ja 1030 00:50:38,050 --> 00:50:42,600 fread vienāds ar nulli - 1031 00:50:42,600 --> 00:50:43,850 nē. 1032 00:50:43,850 --> 00:50:46,002 1033 00:50:46,002 --> 00:50:47,252 >> Jason Hirschhorn: Kurš var palīdzēt Avi out? 1034 00:50:47,252 --> 00:50:49,690 1035 00:50:49,690 --> 00:50:52,410 >> AVI: Kas ir vērtība atpakaļ fread? 1036 00:50:52,410 --> 00:50:54,060 >> Jason Hirschhorn: Mēs tikko piegāja to. 1037 00:50:54,060 --> 00:50:55,450 >> AVI: Kā jūs to pārstāv? 1038 00:50:55,450 --> 00:50:57,190 >> Jason Hirschhorn: Tātad tas atgriežas - pieņemsim meklēt šeit - tas atgriež 1039 00:50:57,190 --> 00:50:59,340 size_t, kas būtībā vesels skaitlis. 1040 00:50:59,340 --> 00:51:02,240 1041 00:51:02,240 --> 00:51:03,410 Tāpēc tas atgriež skaitlim. 1042 00:51:03,410 --> 00:51:05,160 Un mūsu gadījumā, tā būs atgriezties 1 vai 0 - 1043 00:51:05,160 --> 00:51:08,760 1, ja to lasīt vienu - viens baits, un 0, ja mēs esam sasnieguši. 1044 00:51:08,760 --> 00:51:13,560 1045 00:51:13,560 --> 00:51:16,450 Tātad, ja fread - 1046 00:51:16,450 --> 00:51:16,855 yeah? 1047 00:51:16,855 --> 00:51:20,330 >> STUDENT 45: Nevar jūs vienkārši ielieciet pilnu fread (buffer, 1, 1, SRC) uz 1048 00:51:20,330 --> 00:51:21,660 kamēr cilpa? 1049 00:51:21,660 --> 00:51:26,510 >> Jason Hirschhorn: Tātad jūs ierosināt darot to vērā tur? 1050 00:51:26,510 --> 00:51:27,600 >> [interposing BALSIS] 1051 00:51:27,600 --> 00:51:29,520 >> Jason Hirschhorn: Pagaidi. 1052 00:51:29,520 --> 00:51:30,885 Tātad, mēs esam atbrīvojot no tā. 1053 00:51:30,885 --> 00:51:33,300 Tātad jūs ierosināt nodot fread uz tur? 1054 00:51:33,300 --> 00:51:35,457 Kas būtu mēs arī virzīties Ja jūs vēlaties to darīt? 1055 00:51:35,457 --> 00:51:36,740 >> STUDENT 45: buferis ārpuses. 1056 00:51:36,740 --> 00:51:38,110 >> Jason Hirschhorn: Mums vajadzētu arī pārvietot to šeit. 1057 00:51:38,110 --> 00:51:41,700 >> STUDENT 45: Bet tas, kas pastāvīgi virzīties uz priekšu? 1058 00:51:41,700 --> 00:51:42,950 >> [interposing BALSIS] 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 Tātad šis ir tas, ko ierosināts Okshar. 1062 00:51:50,570 --> 00:51:51,930 Mēs veidojam mūsu buferi. 1063 00:51:51,930 --> 00:51:57,020 Mēs KAMĒR fread, tad mēs fwrite. 1064 00:51:57,020 --> 00:51:59,760 Domas par šo? 1065 00:51:59,760 --> 00:52:04,050 >> STUDENT 46: Mans vienīgais jautājums ir, būtu tā faktiski izpildīt komandu fread? 1066 00:52:04,050 --> 00:52:06,175 >> Jason Hirschhorn: Great jautājums. 1067 00:52:06,175 --> 00:52:11,050 Kad jūs nodot funkciju zvanu iekšpusē stāvoklī, tas, ka 1068 00:52:11,050 --> 00:52:12,300 funkcija zvans izpildīt? 1069 00:52:12,300 --> 00:52:15,760 1070 00:52:15,760 --> 00:52:17,770 Mēs esam redzējuši piemērus iepriekš. 1071 00:52:17,770 --> 00:52:24,900 1072 00:52:24,900 --> 00:52:25,660 Tiesības? 1073 00:52:25,660 --> 00:52:26,125 >> STUDENT 46: OK. 1074 00:52:26,125 --> 00:52:26,590 Jā. 1075 00:52:26,590 --> 00:52:30,140 Tāpēc tas izpildīt. 1076 00:52:30,140 --> 00:52:31,790 >> Jason Hirschhorn: Mēs esam redzējuši lietas piemēram, ka pirms, kur mēs esam 1077 00:52:31,790 --> 00:52:33,550 funkcija zvans iekšpusē stāvoklī. 1078 00:52:33,550 --> 00:52:35,540 Tas, ka funkcija zvans izpildīt? 1079 00:52:35,540 --> 00:52:36,350 Jā. 1080 00:52:36,350 --> 00:52:37,410 Tātad atbilde ir jā. 1081 00:52:37,410 --> 00:52:41,010 Šī funkcija zvans izpildīt. 1082 00:52:41,010 --> 00:52:42,418 Bet atkal, tas ir tas, ko mēs gribam? 1083 00:52:42,418 --> 00:52:49,250 1084 00:52:49,250 --> 00:52:52,204 >> Kas ir viens veids, kā mēs varētu izdomāt , ja tas ir tas, ko mēs gribam? 1085 00:52:52,204 --> 00:52:53,470 >> VAIRĀKAS STUDENTIEM: Palaist to? 1086 00:52:53,470 --> 00:52:54,460 >> Jason Hirschhorn: Mēs varētu palaist to. 1087 00:52:54,460 --> 00:52:57,500 Taču, pirms mēs to darām, mēs varētu arī iemesls, izmantojot šo. 1088 00:52:57,500 --> 00:52:57,920 Ja - 1089 00:52:57,920 --> 00:53:01,920 saka, ka mums ir viens baits ar mūsu failu, mēs sāksim šeit 1090 00:53:01,920 --> 00:53:02,660 mēs sāksim šo kodu. 1091 00:53:02,660 --> 00:53:03,620 Tas darbosies. 1092 00:53:03,620 --> 00:53:07,780 fread atgriezīsies vienu baitu un uzglabāt to buferī. 1093 00:53:07,780 --> 00:53:11,290 Un tas novērtē līdz 1, taisnība, kad viņš atgriežas 1. 1094 00:53:11,290 --> 00:53:12,640 >> Tāpēc, kamēr 1. 1095 00:53:12,640 --> 00:53:15,325 Vai tas nozīmē, kodu iekšpusē kamēr cilpa veiks? 1096 00:53:15,325 --> 00:53:15,453 >> STUDENT 47: Jā. 1097 00:53:15,453 --> 00:53:16,040 Tā ir taisnība. 1098 00:53:16,040 --> 00:53:16,290 >> Jason Hirschhorn: Jā. 1099 00:53:16,290 --> 00:53:17,490 1 ir taisnība. 1100 00:53:17,490 --> 00:53:18,240 Tas nav 0. 1101 00:53:18,240 --> 00:53:20,360 Tāpēc kodu iekšā šeit izpildīt. 1102 00:53:20,360 --> 00:53:22,300 Tāpēc mēs rakstīt to. 1103 00:53:22,300 --> 00:53:25,340 Mēs pāriet atpakaļ uz šo line vēlreiz. 1104 00:53:25,340 --> 00:53:26,850 Tagad mums ir - 1105 00:53:26,850 --> 00:53:28,550 mēs beigās mūsu failu. 1106 00:53:28,550 --> 00:53:30,980 Mēs lasīt no beigām mūsu failu, jo mums bija tikai vienu baitu tajā. 1107 00:53:30,980 --> 00:53:34,270 >> Fread atgriež 0, veikali kaut buferī. 1108 00:53:34,270 --> 00:53:35,890 Es godīgi nezinu, ko tas saglabā buferī. 1109 00:53:35,890 --> 00:53:38,380 Mēs droši vien varētu uzmeklēt lai redzētu, ko tā dara. 1110 00:53:38,380 --> 00:53:40,130 Ka es godīgi nezinu. 1111 00:53:40,130 --> 00:53:43,090 Mēs nezinām, kas rūpējas, ko tas saglabā buferī? 1112 00:53:43,090 --> 00:53:44,010 Bet tas atgriezīsies 0. 1113 00:53:44,010 --> 00:53:45,440 Un kamēr 0 izpildīt? 1114 00:53:45,440 --> 00:53:49,950 1115 00:53:49,950 --> 00:53:51,180 >> KAMĒR 0 neizpildīs. 1116 00:53:51,180 --> 00:53:54,030 Tātad, tad mēs uz leju šeit. 1117 00:53:54,030 --> 00:53:58,870 Tāpēc pieņemsim iegūt paceļot roku, ja tas ir kods, mums ir darboties, vai ja 1118 00:53:58,870 --> 00:54:00,140 jādara izmaiņas vispirms. 1119 00:54:00,140 --> 00:54:02,180 Tātad, ja jūs domājat, ka - jums ir jābalso. 1120 00:54:02,180 --> 00:54:06,885 Ja jūs domājat, ka mums vajadzētu palaist šo kodu kā ir, lūdzu, paceliet roku. 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 Ir viens - 1124 00:54:14,315 --> 00:54:17,260 Vai jums ir jautājums, bažas? 1125 00:54:17,260 --> 00:54:18,080 Jā. 1126 00:54:18,080 --> 00:54:21,240 >> STUDENT 48: Pēc tam, kad mēs virzāmies buferi ārpus cilpas, mēs 1127 00:54:21,240 --> 00:54:22,670 ir malloc to? 1128 00:54:22,670 --> 00:54:23,310 >> Jason Hirschhorn: Great jautājums. 1129 00:54:23,310 --> 00:54:26,670 Pēc tam, kad mēs virzāmies bufera ārpus cilpa, vai mums ir malloc to? 1130 00:54:26,670 --> 00:54:28,400 Šī ir joma jautājums. 1131 00:54:28,400 --> 00:54:32,130 Ja mēs sāktu buferis ārpus šīs cilpas, tas pastāv 1132 00:54:32,130 --> 00:54:33,534 iekšpusē cilpas? 1133 00:54:33,534 --> 00:54:35,230 >> VAIRĀKAS STUDENTIEM: Jā. 1134 00:54:35,230 --> 00:54:35,580 >> Jason Hirschhorn: Jā. 1135 00:54:35,580 --> 00:54:40,100 Aptverot iekšpusē cilpas, un, tiešām, kaut kas zem tā iekšpusē 1136 00:54:40,100 --> 00:54:42,460 Šā kodeksa, tostarp lietas iekšā šeit. 1137 00:54:42,460 --> 00:54:43,930 Tāpēc mums nav nepieciešams malloc to. 1138 00:54:43,930 --> 00:54:47,766 Tā ir vietējā mainīga, un tās darbības joma joprojām ietilpst cilpa. 1139 00:54:47,766 --> 00:54:49,540 >> STUDENT 49: Vai mums ir nepieciešams, lai atbrīvotu to? 1140 00:54:49,540 --> 00:54:51,770 >> Jason Hirschhorn: Vai mēs ir bezmaksas buferis? 1141 00:54:51,770 --> 00:54:53,860 >> STUDENT 49: Jā, ja mums nav malloc. 1142 00:54:53,860 --> 00:54:55,750 >> Jason Hirschhorn: Vai mēs ir bezmaksas buferis? 1143 00:54:55,750 --> 00:54:57,160 Mums nav. 1144 00:54:57,160 --> 00:55:01,280 Again, tas ir lokāls mainīgais, tāpēc mums nav nepieciešams, lai atbrīvotu to. 1145 00:55:01,280 --> 00:55:02,170 OK. 1146 00:55:02,170 --> 00:55:03,480 Let 's redzēt, kas notiek. 1147 00:55:03,480 --> 00:55:17,290 1148 00:55:17,290 --> 00:55:18,220 Tāpēc tas ir uninitialized. 1149 00:55:18,220 --> 00:55:20,830 Tas bija tas, ko kaut kas Marcus piedāvā ātrāk. 1150 00:55:20,830 --> 00:55:25,340 Tāpēc mums ir, ka kļūda, mainīgs buferi tiek neinicializētām lietojot šeit. 1151 00:55:25,340 --> 00:55:26,590 >> Kā mēs varam noteikt šo? 1152 00:55:26,590 --> 00:55:29,460 1153 00:55:29,460 --> 00:55:30,960 >> STUDENT 50: malloc to? 1154 00:55:30,960 --> 00:55:31,770 >> STUDENT 51: Vienāds NULL? 1155 00:55:31,770 --> 00:55:33,000 >> STUDENT 52: Say buferis vienāds 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 Izskatās labi. 1159 00:55:40,770 --> 00:55:42,410 Mēs esam tagad. 1160 00:55:42,410 --> 00:55:45,630 Pieņemsim izveidot kaut ko, lai mēģinātu kopēšanu. 1161 00:55:45,630 --> 00:56:08,990 1162 00:56:08,990 --> 00:56:10,490 Tāpēc mums ir mūsu teksta failu. 1163 00:56:10,490 --> 00:56:11,740 Kā mēs varam palaist šo programmu? 1164 00:56:11,740 --> 00:56:14,140 1165 00:56:14,140 --> 00:56:15,472 Jā. 1166 00:56:15,472 --> 00:56:22,230 >> STUDENT 53: Jūs varat darīt dot slash KP, test.txt. 1167 00:56:22,230 --> 00:56:25,140 Un tad jūs varat nosaukt vēl vienu failu kas tas veikals into. 1168 00:56:25,140 --> 00:56:25,510 >> Jason Hirschhorn: OK. 1169 00:56:25,510 --> 00:56:27,380 Mēs to saucam 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 vaina. 1173 00:56:34,320 --> 00:56:35,570 Domas par SEG vaina? 1174 00:56:35,570 --> 00:56:40,900 1175 00:56:40,900 --> 00:56:41,390 Tas ir lieliski. 1176 00:56:41,390 --> 00:56:45,040 Kā mēs varam uzzināt, kur SEG vaina ir? 1177 00:56:45,040 --> 00:56:45,680 Kas? 1178 00:56:45,680 --> 00:56:45,990 >> STUDENT 54: Gdb. 1179 00:56:45,990 --> 00:56:47,240 >> Jason Hirschhorn: Gdb. 1180 00:56:47,240 --> 00:56:51,400 1181 00:56:51,400 --> 00:56:55,300 Mēs palaist gdb rakstot gdb dot slīpsvītru, nosaukums mūsu programmā. 1182 00:56:55,300 --> 00:56:57,020 Nav komandrindas argumentus tur. 1183 00:56:57,020 --> 00:56:59,570 Mēs ejam, lai uzstādītu lūzuma punktu pie galvenā. 1184 00:56:59,570 --> 00:57:02,190 Ja es gribu sākt gdb, ko man darīt? 1185 00:57:02,190 --> 00:57:02,730 >> STUDENT 55: R. 1186 00:57:02,730 --> 00:57:08,910 >> Jason Hirschhorn: R. Un tad ko? 1187 00:57:08,910 --> 00:57:09,400 >> STUDENT 55: Argumenti? 1188 00:57:09,400 --> 00:57:10,650 >> Jason Hirschhorn: Tad komandrindas argumentus. 1189 00:57:10,650 --> 00:57:15,890 1190 00:57:15,890 --> 00:57:17,120 Apskatīsim. 1191 00:57:17,120 --> 00:57:19,090 N ir tikai ņemot man pozīcijai. 1192 00:57:19,090 --> 00:57:21,450 Es iešu līdz Es varu saņemt savu seg vaina. 1193 00:57:21,450 --> 00:57:22,700 Tur ir mana seg vaina. 1194 00:57:22,700 --> 00:57:24,960 1195 00:57:24,960 --> 00:57:27,875 Tas izskatās fread izraisa mans seg vaina. 1196 00:57:27,875 --> 00:57:30,570 1197 00:57:30,570 --> 00:57:32,770 Es zinu fread izraisīja manu seg vaina, jo tas bija 1198 00:57:32,770 --> 00:57:34,950 line mēs vienkārši izpildīts. 1199 00:57:34,950 --> 00:57:36,530 >> Un vienīgā lieta, kas bija notiek šajā līnijā - 1200 00:57:36,530 --> 00:57:37,520 divas lietas notiktu. 1201 00:57:37,520 --> 00:57:40,610 Fread bija iet, un tad mēs bijām darot daži vienlaikus pārbaudot. 1202 00:57:40,610 --> 00:57:44,820 Es esmu gatavs derēt, ka KAMĒR pārbaude netika rada manu seg vaina. 1203 00:57:44,820 --> 00:57:46,950 Visticamāk, fread bija izraisot manu seg vaina. 1204 00:57:46,950 --> 00:57:49,260 Es arī redzu kaut ko šeit, memcopy. 1205 00:57:49,260 --> 00:57:50,500 >> Atmiņas kopija. 1206 00:57:50,500 --> 00:57:53,820 Izklausās pārvietojas atmiņu no vienas vietas uz otru. 1207 00:57:53,820 --> 00:57:56,890 Izklausās kaut kas notiktu in fread, varbūt daži atmiņa 1208 00:57:56,890 --> 00:57:58,910 pārvietojas no šejienes līdz šejienei. 1209 00:57:58,910 --> 00:58:01,740 1210 00:58:01,740 --> 00:58:03,860 Iesim caur to vēlreiz. 1211 00:58:03,860 --> 00:58:06,900 Kā es varu sākt to pār un palaist to no jauna? 1212 00:58:06,900 --> 00:58:08,092 Jā. 1213 00:58:08,092 --> 00:58:15,140 >> STUDENT 56: Vai jums ir nepieciešams, lai Ampersand pirms buferis? 1214 00:58:15,140 --> 00:58:17,800 >> Jason Hirschhorn: So Ampersand pirms bufera dotu man adresi 1215 00:58:17,800 --> 00:58:22,330 buferis, kas ir char *. 1216 00:58:22,330 --> 00:58:25,250 Pieņemsim palaist caur šo vēl vienu reizi. 1217 00:58:25,250 --> 00:58:28,248 Kā es varu palaist caur to vēl vienu reizi? 1218 00:58:28,248 --> 00:58:29,210 >> STUDENT 57: Vai jūs vienkārši tipa palaist vēlreiz? 1219 00:58:29,210 --> 00:58:32,050 >> Jason Hirschhorn: Vienkārši ierakstiet palaist vēlreiz. 1220 00:58:32,050 --> 00:58:33,415 Tāpēc mēs nebrauksim izpildīt šo līniju. 1221 00:58:33,415 --> 00:58:36,250 1222 00:58:36,250 --> 00:58:39,240 Tāpēc buferis ir NULL rādītājs. 1223 00:58:39,240 --> 00:58:40,490 Labot? 1224 00:58:40,490 --> 00:58:45,870 1225 00:58:45,870 --> 00:58:47,060 Tā ir vērsta uz - redzēsim. 1226 00:58:47,060 --> 00:58:48,500 Ja mums ir mūsu - 1227 00:58:48,500 --> 00:58:50,430 izdarīt ātru priekšstatu par to. 1228 00:58:50,430 --> 00:58:53,500 Var ikviens redzētu, Es rakstīt vairāk nekā šeit? 1229 00:58:53,500 --> 00:59:02,890 >> Tātad kaudze, mēs esam vietējā mainīga un to sauc bufera, un 1230 00:59:02,890 --> 00:59:08,230 tas ir rādītājs, lai palijas. 1231 00:59:08,230 --> 00:59:10,325 Kas adrese ir tas char pie? 1232 00:59:10,325 --> 00:59:12,550 >> STUDENT 58: 0x0. 1233 00:59:12,550 --> 00:59:13,400 >> Jason Hirschhorn: Right. 1234 00:59:13,400 --> 00:59:14,200 Tas ir, kas tas ir. 1235 00:59:14,200 --> 00:59:17,600 Šeit, iekšā buferī, tiek glabāti 0x0. 1236 00:59:17,600 --> 00:59:20,480 Tas ir tas, ko mēs esam - uzstādīšanas mums ir tiesības tagad. 1237 00:59:20,480 --> 00:59:27,540 Tātad šī pozīcija, fread, liek kaut ko No avota, kur? 1238 00:59:27,540 --> 00:59:30,560 Šajā kastē vai šajā ailē? 1239 00:59:30,560 --> 00:59:31,060 Kas kastē? 1240 00:59:31,060 --> 00:59:33,290 Left kastē vai pareizo izvēli? 1241 00:59:33,290 --> 00:59:34,750 Šīs tiesības box. 1242 00:59:34,750 --> 00:59:38,440 >> No tā izriet, rādītāju, un liek to šeit. 1243 00:59:38,440 --> 00:59:42,620 Kad mēs cenšamies un pieskārienu atmiņa ir Atrašanās vieta kartē 0, ko mēs saņemam? 1244 00:59:42,620 --> 00:59:45,050 Segmentāciju vaina. 1245 00:59:45,050 --> 00:59:46,550 Tas ir kļūda, mums ir tiesības tagad. 1246 00:59:46,550 --> 00:59:46,970 Jā. 1247 00:59:46,970 --> 00:59:48,410 >> STUDENT 59: Vai nav jums ir likt zvaigžņu buferi? 1248 00:59:48,410 --> 00:59:49,180 Vai nē? 1249 00:59:49,180 --> 00:59:50,050 Par fread? 1250 00:59:50,050 --> 00:59:51,450 >> Jason Hirschhorn: So fread aizņem rādītāju. 1251 00:59:51,450 --> 00:59:54,920 1252 00:59:54,920 --> 00:59:55,900 Tāpēc tas iet buferī. 1253 00:59:55,900 --> 00:59:58,980 Un tad tas būs de-atskaites tas kaut kur iekšā fread. 1254 00:59:58,980 --> 01:00:00,700 Bet atkal, mēs redzējām, tas aizņem rādītāju. 1255 01:00:00,700 --> 01:00:02,560 Mums nav nepieciešams nodot zvaigzne buferi. 1256 01:00:02,560 --> 01:00:05,350 Tas būtu iet tas kāda ir šeit. 1257 01:00:05,350 --> 01:00:07,980 Un tas, iespējams, dod mums kļūdu jo mēs esam de norādes to. 1258 01:00:07,980 --> 01:00:08,150 >> Tiesības? 1259 01:00:08,150 --> 01:00:10,690 Kad mēs de-reference šo rādītāju, kad Mēs cenšamies, lai piekļūtu šo vietu, 1260 01:00:10,690 --> 01:00:13,140 mēs esam kļūst kļūda - Mūsu segmentāciju vaina. 1261 01:00:13,140 --> 01:00:15,800 Tātad - 1262 01:00:15,800 --> 01:00:16,690 Ups. 1263 01:00:16,690 --> 01:00:19,090 Mēs ejam, lai izietu no gdb. 1264 01:00:19,090 --> 01:00:20,160 Mūsu pozīcija - 1265 01:00:20,160 --> 01:00:22,990 mūsu problēma - ir labi šeit uz šīs līnijas. 1266 01:00:22,990 --> 01:00:26,410 Un tā ir problēma, jo Šī līnija. 1267 01:00:26,410 --> 01:00:31,780 >> Kā mēs varam izveidot lodziņu, kas Ir pieejams fread. 1268 01:00:31,780 --> 01:00:31,980 Tiesības? 1269 01:00:31,980 --> 01:00:35,190 Mums ir nepieciešams, lai izveidotu lodziņu, kas ir viens baitu liels, izmērs char. 1270 01:00:35,190 --> 01:00:38,590 Bet mums ir nepieciešams, ka kaste ir jābūt pieejamai kad šī funkcija izpilda. 1271 01:00:38,590 --> 01:00:39,390 Tātad, ja - 1272 01:00:39,390 --> 01:00:39,640 yeah. 1273 01:00:39,640 --> 01:00:40,440 Jebkuras idejas? 1274 01:00:40,440 --> 01:00:43,615 >> STUDENT 60: Vienkārši kā jebkurš izlases raksturs. 1275 01:00:43,615 --> 01:00:49,150 1276 01:00:49,150 --> 01:00:51,640 Just do Char buferis vienāds raksturs. 1277 01:00:51,640 --> 01:00:53,795 Un tad, kad jums ir buferis tur - 1278 01:00:53,795 --> 01:00:54,110 >> Jason Hirschhorn: Pagaidiet. 1279 01:00:54,110 --> 01:00:55,110 Char buferis? 1280 01:00:55,110 --> 01:00:55,880 Līdz ar to nav zvaigzne? 1281 01:00:55,880 --> 01:00:56,390 >> STUDENT 60: Jā. 1282 01:00:56,390 --> 01:00:58,560 Izņemiet zvaigzni. 1283 01:00:58,560 --> 01:01:00,690 Vienāds izlases raksturs. 1284 01:01:00,690 --> 01:01:01,460 >> Jason Hirschhorn: OK. 1285 01:01:01,460 --> 01:01:02,420 Tāpēc man vienu. 1286 01:01:02,420 --> 01:01:03,170 >> STUDENT 60: Like vai kaut ko. 1287 01:01:03,170 --> 01:01:06,160 Un tad, kad jums ir buferis tur, jūs izmantojat - 1288 01:01:06,160 --> 01:01:06,420 >> STUDENT 61: Star? 1289 01:01:06,420 --> 01:01:07,650 Ak nē, Ampersand. 1290 01:01:07,650 --> 01:01:09,000 >> STUDENT 60: Izmantojiet aizvieto & zīmes. 1291 01:01:09,000 --> 01:01:09,470 >> Jason Hirschhorn: OK. 1292 01:01:09,470 --> 01:01:11,320 Un ko par to, kas fwrite? 1293 01:01:11,320 --> 01:01:14,150 >> STUDENT 60: Izmantojiet aizvieto & zīmes vēlreiz. 1294 01:01:14,150 --> 01:01:14,320 >> Jason Hirschhorn: Nu labi. 1295 01:01:14,320 --> 01:01:20,970 Tātad jūsu ideja ir, mēs izveidojam char un kaut ko tajā, un pēc tam 1296 01:01:20,970 --> 01:01:22,612 rakstiet uz šo char. 1297 01:01:22,612 --> 01:01:23,760 >> STUDENT 60: Jā. 1298 01:01:23,760 --> 01:01:25,916 >> Jason Hirschhorn: Kas cilvēki domā? 1299 01:01:25,916 --> 01:01:27,770 >> STUDENT 62: Tas ir spirālveida. 1300 01:01:27,770 --> 01:01:28,460 >> Jason Hirschhorn: OK. 1301 01:01:28,460 --> 01:01:29,760 Pieņemsim izdarīt to ārā. 1302 01:01:29,760 --> 01:01:35,720 Tāpēc šoreiz, es esmu gatavojas izdarīt šo sarkanā steku šeit, un tad mēs 1303 01:01:35,720 --> 01:01:36,410 būs - 1304 01:01:36,410 --> 01:01:36,822 ooh! 1305 01:01:36,822 --> 01:01:38,060 Piedodiet. 1306 01:01:38,060 --> 01:01:45,930 Tāpēc šoreiz mums ir kaut kas ko sauc bufera, un tas ir uz grēdas. 1307 01:01:45,930 --> 01:01:48,430 Labot? 1308 01:01:48,430 --> 01:01:51,520 Un mēs esam ietaupot tajā ir, sākumā. 1309 01:01:51,520 --> 01:01:53,830 >> Tad mums ir mūsu zvanu fread. 1310 01:01:53,830 --> 01:02:01,300 Kas fread tas ir nepieciešams, baitu no mūsu failu un liek to kaut kur. 1311 01:02:01,300 --> 01:02:04,570 Tas liek to neatkarīgi lieta ir norādot uz. 1312 01:02:04,570 --> 01:02:09,130 Nu, pirms mums bija šo adresi - 1313 01:02:09,130 --> 01:02:10,250 0x0. 1314 01:02:10,250 --> 01:02:13,349 Tagad to adrese mums ir? 1315 01:02:13,349 --> 01:02:14,650 >> STUDENT 63: Kāds adrese buferis ir. 1316 01:02:14,650 --> 01:02:15,970 >> Jason Hirschhorn: Neatkarīgi adrese buferis ir. 1317 01:02:15,970 --> 01:02:22,370 Tas droši vien būs kaut kā tā. 1318 01:02:22,370 --> 01:02:26,950 Iespējams, gatavojas sākt ar B un f, un tam ir seši citi 1319 01:02:26,950 --> 01:02:27,970 heksadecimālcipariem. 1320 01:02:27,970 --> 01:02:28,480 Nav svarīgi. 1321 01:02:28,480 --> 01:02:29,470 Daži adresi. 1322 01:02:29,470 --> 01:02:31,410 Un mēs esam garām šo adresi iekšā 1323 01:02:31,410 --> 01:02:34,790 >> Un mēs ejam, lai mūsu vienu baitu lieta šajā adresē. 1324 01:02:34,790 --> 01:02:38,470 Tāpēc mēs esam gatavojas nodot savu vienu baitu lieta iekšā šeit. 1325 01:02:38,470 --> 01:02:40,800 Un tad mēs ejam, lai rakstītu no kas ir kādreiz iekšā šeit. 1326 01:02:40,800 --> 01:02:43,425 1327 01:02:43,425 --> 01:02:45,380 Vai kāds ir kādi jautājumi par to? 1328 01:02:45,380 --> 01:02:50,990 1329 01:02:50,990 --> 01:02:54,690 Kas domā, šis kods darbosies? 1330 01:02:54,690 --> 01:02:56,020 >> Paaugstināt savu roku, ja jūs domājat, ka šis kods darbosies. 1331 01:02:56,020 --> 01:02:57,270 Jums ir ieņemt nostāju. 1332 01:02:57,270 --> 01:03:00,670 1333 01:03:00,670 --> 01:03:02,500 Un kurš domā, šis kods nestrādās? 1334 01:03:02,500 --> 01:03:04,610 Paceliet roku. 1335 01:03:04,610 --> 01:03:06,750 Visi citi ir paaugstināt savu roku. 1336 01:03:06,750 --> 01:03:07,670 OK. 1337 01:03:07,670 --> 01:03:09,390 Michael, kur jūs stāv? 1338 01:03:09,390 --> 01:03:10,680 >> MICHAEL: Es nevaru izlemt. 1339 01:03:10,680 --> 01:03:12,070 Veida vidū. 1340 01:03:12,070 --> 01:03:12,736 >> Jason Hirschhorn: Tu esi vidū. 1341 01:03:12,736 --> 01:03:13,092 Izvēlēties vienu. 1342 01:03:13,092 --> 01:03:14,400 >> MICHAEL: Es ticu un saka, ka tas darbosies. 1343 01:03:14,400 --> 01:03:14,660 >> Jason Hirschhorn: OK. 1344 01:03:14,660 --> 01:03:16,047 Jums ir ticība, un saka, ka tas darbojas? 1345 01:03:16,047 --> 01:03:26,490 1346 01:03:26,490 --> 01:03:27,020 Kas notika? 1347 01:03:27,020 --> 01:03:28,270 >> [interposing BALSIS] 1348 01:03:28,270 --> 01:03:35,170 1349 01:03:35,170 --> 01:03:35,950 >> Jason Hirschhorn: Nav seg vaina. 1350 01:03:35,950 --> 01:03:40,320 Kā mēs varam pārbaudīt, lai redzētu, vai divas lietas ir vienādi? 1351 01:03:40,320 --> 01:03:42,060 Divi faili ir vienādi. 1352 01:03:42,060 --> 01:03:43,300 >> STUDENT 64: Diff. 1353 01:03:43,300 --> 01:03:45,490 >> Jason Hirschhorn: Diff. 1354 01:03:45,490 --> 01:03:51,630 Diff pārbaudes atšķirībām starp divi faili, un, ja tas atgriež 1355 01:03:51,630 --> 01:03:52,890 nekas, viņi ir identiski. 1356 01:03:52,890 --> 01:03:59,030 Un, ja mēs atvērt, mēs saņemt mūsu failu. 1357 01:03:59,030 --> 01:04:00,490 Tā, ka bija pareizs risinājums. 1358 01:04:00,490 --> 01:04:01,780 Pieņemsim atskatīties uz to vēl vienu reizi. 1359 01:04:01,780 --> 01:04:04,080 Mēs faktiski nav pat ir nepieciešams, lai sāktu to. 1360 01:04:04,080 --> 01:04:05,520 >> Tas, iespējams, izskatīsies mazliet tīrāku, ja jums nav likts 1361 01:04:05,520 --> 01:04:07,680 kaut izlases tur. 1362 01:04:07,680 --> 01:04:13,070 Punkts ir, jums nepieciešams, lai izveidotu dažas vietas, lai saglabātu kaut ko no 1363 01:04:13,070 --> 01:04:15,530 fread un veikt kaut ko no fwrite. 1364 01:04:15,530 --> 01:04:18,400 Un tas, ka lieta bija jābūt vai nu vietējā mainīgo kaudze - tu 1365 01:04:18,400 --> 01:04:19,890 varētu esam malloc'd dažas vietas. 1366 01:04:19,890 --> 01:04:23,030 >> Lai mēs patiešām varētu būt rakstīts malloc šeit, un 1367 01:04:23,030 --> 01:04:25,420 kas būtu strādājuši. 1368 01:04:25,420 --> 01:04:28,660 Un tad mēs būtu glabāšanai mūsu lietas kaut kur uz kaudzes. 1369 01:04:28,660 --> 01:04:31,940 Bet tas ir patiesībā, iespējams, visvairāk elegants risinājums. 1370 01:04:31,940 --> 01:04:34,490 Just izveidot dažas vietas uz skursteņa lai šīs lietas iet. 1371 01:04:34,490 --> 01:04:37,690 1372 01:04:37,690 --> 01:04:38,990 >> Man būtu divi citi komentāri. 1373 01:04:38,990 --> 01:04:44,650 Ja tu būtu veikt pagriezienu šajā, un Tad get ieguva par to, mani komentāri 1374 01:04:44,650 --> 01:04:47,400 varētu būt šādi. 1375 01:04:47,400 --> 01:04:54,300 Šie 1 ir šeit, pie manis, meklēt piemēram, burvju numuru. 1376 01:04:54,300 --> 01:04:56,860 Šī 1, attiecībā uz fread, jēga. 1377 01:04:56,860 --> 01:04:59,580 Tas ir vairākas lietas, lasīt vai rakstīt. 1378 01:04:59,580 --> 01:05:03,740 >> Bet tas viens tieši šeit vajadzētu iespējams, būs kaut kas cits. 1379 01:05:03,740 --> 01:05:05,180 Tātad, kas ir viens risinājums? 1380 01:05:05,180 --> 01:05:06,545 >> STUDENT 65: lielums baitu. 1381 01:05:06,545 --> 01:05:10,100 1382 01:05:10,100 --> 01:05:11,080 >> Jason Hirschhorn: piemēram, ka? 1383 01:05:11,080 --> 01:05:13,130 >> STUDENT 65: lielums char. 1384 01:05:13,130 --> 01:05:13,820 >> Jason Hirschhorn: lielums char. 1385 01:05:13,820 --> 01:05:15,290 Jā, baitu nav veids. 1386 01:05:15,290 --> 01:05:16,320 Tā lielums rakstur darbu. 1387 01:05:16,320 --> 01:05:30,270 Mēs varētu būt, augšā mūsu kods, # definēts to. 1388 01:05:30,270 --> 01:05:33,410 Sauc kaut BYTE un tas tiešām char. 1389 01:05:33,410 --> 01:05:37,675 Patiesībā, vēl labāka pieeja varētu būt šī - 1390 01:05:37,675 --> 01:05:39,391 UINT. 1391 01:05:39,391 --> 01:05:40,780 Kāds zina, kas tas ir? 1392 01:05:40,780 --> 01:05:44,388 1393 01:05:44,388 --> 01:05:44,840 >> Piedodiet. 1394 01:05:44,840 --> 01:05:46,090 Man to atpakaļ. 1395 01:05:46,090 --> 01:05:51,620 1396 01:05:51,620 --> 01:05:52,200 Pagaidiet, nē. 1397 01:05:52,200 --> 01:05:53,450 Kādā veidā tas iet? 1398 01:05:53,450 --> 01:05:58,071 1399 01:05:58,071 --> 01:05:59,660 Kāds zina, kas tas ir? 1400 01:05:59,660 --> 01:06:00,950 Jā. 1401 01:06:00,950 --> 01:06:05,650 >> STUDENT 67: paredzēts, lai palīdzētu standartizēt pāri sistēmas lietām, kas 1402 01:06:05,650 --> 01:06:08,760 ir - tāpat neparakstītu integers kas ir 8 baiti? 1403 01:06:08,760 --> 01:06:11,785 >> Jason Hirschhorn: Tas ir tieši labi. 1404 01:06:11,785 --> 01:06:14,310 Uz dažādām mašīnām, lielums char - 1405 01:06:14,310 --> 01:06:15,180 parasti nav char. 1406 01:06:15,180 --> 01:06:16,100 Simboli parasti ir viens baits. 1407 01:06:16,100 --> 01:06:19,590 Bet lielums citu datu tipu ir dažādi izmēri uz 32 bitu mašīna 1408 01:06:19,590 --> 01:06:21,370 salīdzinot ar 64-bitu mašīna. 1409 01:06:21,370 --> 01:06:25,180 Uint8_t vienmēr ir 8 biti - 1410 01:06:25,180 --> 01:06:27,210 vienmēr ir viens baits. 1411 01:06:27,210 --> 01:06:29,580 >> Un man ir nepieciešams, lai iekļautu, ka Standarta int header failu. 1412 01:06:29,580 --> 01:06:35,040 Tāpēc tagad, tas, iespējams, ir Labākais veids, kā rakstīt šo kodu. 1413 01:06:35,040 --> 01:06:40,160 1414 01:06:40,160 --> 01:06:41,450 Tāpēc es varu atbrīvoties no burvju numuru. 1415 01:06:41,450 --> 01:06:44,690 Un es arī ir daudz loģiskāk rakstiet uz bufera. 1416 01:06:44,690 --> 01:06:49,450 Tas ir ne tikai char, tas ir baitu, kas ir tas, ko mēs sagaidām, ka tā ir. 1417 01:06:49,450 --> 01:06:53,400 >> Un šeit mēs esam patiesībā bijis nedaudz stingrāku. 1418 01:06:53,400 --> 01:06:55,190 Mēs esam ne aicinot to char, kas - 1419 01:06:55,190 --> 01:06:58,630 varbūt, kas zina - var būt atšķirīgs lielums uz dažādām mašīnām. 1420 01:06:58,630 --> 01:07:02,025 Mēs faktiski sakot, tas ir tieši tas, vienu baitu, vienmēr, vienalga ko. 1421 01:07:02,025 --> 01:07:05,810 Un, ja mēs skatāmies šeit, mēs cp. 1422 01:07:05,810 --> 01:07:08,340 Uh-oh. 1423 01:07:08,340 --> 01:07:09,590 Kas notika? 1424 01:07:09,590 --> 01:07:14,470 1425 01:07:14,470 --> 01:07:16,170 >> STUDENT 68: Tas varētu ieslēgt. 1426 01:07:16,170 --> 01:07:17,880 >> Jason Hirschhorn: Kas? 1427 01:07:17,880 --> 01:07:19,130 >> STUDENT 69: Vai tas ir? 1428 01:07:19,130 --> 01:07:21,940 1429 01:07:21,940 --> 01:07:25,080 >> STUDENT 70: Tu nav definēt kā sava veida. 1430 01:07:25,080 --> 01:07:28,684 >> STUDENT 71: Bet tas būtu jādefinē standartā. 1431 01:07:28,684 --> 01:07:29,934 >> STUDENT 72: Kas notiek? 1432 01:07:29,934 --> 01:07:37,660 1433 01:07:37,660 --> 01:07:40,210 >> STUDENT 73: jādefinē būt visas cepures? 1434 01:07:40,210 --> 01:07:41,370 >> Jason Hirschhorn: Tātad, tas nav # definēt. 1435 01:07:41,370 --> 01:07:45,490 Patiesībā, šajā gadījumā, es esmu gatavojas izmantot typedef. 1436 01:07:45,490 --> 01:07:48,590 Tāpēc, ka mēs izmantojam to kā tipa vienā vietā. 1437 01:07:48,590 --> 01:07:51,990 Tātad šajā gadījumā mēs tiešām gribam, lai typedef, piemēram, mēs esam drukāšanas jauna veida 1438 01:07:51,990 --> 01:07:54,490 baits, un tas ir būtībā šis. 1439 01:07:54,490 --> 01:07:56,590 Tas ir nedaudz savādāka nekā # definēt. 1440 01:07:56,590 --> 01:08:02,740 >> Un tagad, mūsu kods strādā perfekti. 1441 01:08:02,740 --> 01:08:05,230 Tātad, atkal, # definēt notiek kaut kas, aizstāj to visur 1442 01:08:05,230 --> 01:08:06,780 ar cita lieta. 1443 01:08:06,780 --> 01:08:07,920 Tas ir tikai makro - 1444 01:08:07,920 --> 01:08:09,420 stenogrāfija atbrīvoties no burvju numuru. 1445 01:08:09,420 --> 01:08:11,360 Taču šajā gadījumā, jo mēs izmantojot to kā sava veida - 1446 01:08:11,360 --> 01:08:12,180 tieši šeit - 1447 01:08:12,180 --> 01:08:19,880 , lai tas darbotos, mums vajag līdz typedef kāds baits ir. 1448 01:08:19,880 --> 01:08:21,840 >> Un mēs esam nosakot to tieši šeit. 1449 01:08:21,840 --> 01:08:24,750 Tas nav struktūrai, tas ir faktiski tikai absolūtā veselā. 1450 01:08:24,750 --> 01:08:27,680 Tas ir viens baitu garš. 1451 01:08:27,680 --> 01:08:31,910 Šis kods būs pieejams tiešsaistē, un Jums visiem ir jābūt to tieši tagad. 1452 01:08:31,910 --> 01:08:33,830 >> Tāpēc mums ir - 1453 01:08:33,830 --> 01:08:34,250 perfect - 1454 01:08:34,250 --> 01:08:41,359 13 minūtes pa kreisi, lai dotos vairāk problēmu noteikts 5. 1455 01:08:41,359 --> 01:08:44,270 Es gribu staigāt pa copy.c kopā, un tad mēs runāsim īsi 1456 01:08:44,270 --> 01:08:47,120 par pārējām daļām Problēmas noteikti. 1457 01:08:47,120 --> 01:08:48,899 Tāpēc ļaujiet man uzvilkt copy.c. 1458 01:08:48,899 --> 01:09:03,930 1459 01:09:03,930 --> 01:09:08,810 Un cool lieta ir, mēs esam patiesībā jau rakstīts daudz šo kodu. 1460 01:09:08,810 --> 01:09:11,180 >> Kods mēs rakstījām burtiski tikko iznāca šeit, kad es biju 1461 01:09:11,180 --> 01:09:13,120 rakstot šo par savu. 1462 01:09:13,120 --> 01:09:16,990 Bet tas ir copy.c, veido pamatu pirmajās divās daļās 1463 01:09:16,990 --> 01:09:22,340 problēma noteikti whodunit.c, kas Jums ir nepieciešams, lai rakstītu, un resize.c. 1464 01:09:22,340 --> 01:09:27,050 Recover.c, kas ir trešais un pēdējais daļa no problēmas, kas, nav 1465 01:09:27,050 --> 01:09:29,529 balstīta off par šo failu. 1466 01:09:29,529 --> 01:09:32,200 >> Jūs esat dodas uz nepieciešamību rakstīt šo failu, mēs jums veidni, kas 1467 01:09:32,200 --> 01:09:34,620 failu, bet tas nav nekas darīt ar copy.c. 1468 01:09:34,620 --> 01:09:38,675 Bet tāpēc, ka copy.c ir pamats pirmās divas daļas, mēs ejam 1469 01:09:38,675 --> 01:09:42,000 staigāt pa to tagad, tāpēc jums ir labu sajūtu par to, ko tā dara. 1470 01:09:42,000 --> 01:09:43,640 >> Un komentārus sniegt dažas no tā prom. 1471 01:09:43,640 --> 01:09:45,120 Mēs esam jau rakstīts daži par to. 1472 01:09:45,120 --> 01:09:49,220 Pirmkārt, mēs esam pārliecinoties mēs trīs argumentus. 1473 01:09:49,220 --> 01:09:50,560 Tālāk, mēs atcerēties faila nosaukumu. 1474 01:09:50,560 --> 01:09:52,960 Tāpēc mēs izlaidis šo soli, ja mēs kodēti mūsu lieta - 1475 01:09:52,960 --> 01:09:54,700 kad mūsu cp. 1476 01:09:54,700 --> 01:09:56,750 Bet šeit, viņi padarot tas mazliet tīrāks. 1477 01:09:56,750 --> 01:09:59,350 >> Viņi pārbaudes, lai pārliecinātos, ka abi faili ir laba, 1478 01:09:59,350 --> 01:10:00,450 papildus atverot tos. 1479 01:10:00,450 --> 01:10:04,760 Mēs rakstījām visu šo kodu tikai tagad, tāpēc es esmu nav gatavojas pakavēties pie šo kodu. 1480 01:10:04,760 --> 01:10:09,670 Nākamais ir daži sīkumi, kas ir raksturīgas veidi failu mēs esam, izmantojot, kas 1481 01:10:09,670 --> 01:10:12,240 ir bitkartes failus. 1482 01:10:12,240 --> 01:10:15,660 Bitmap failus ir dažas metadati saistīts ar tiem. 1483 01:10:15,660 --> 01:10:20,190 >> Tātad pirmais pāris baitu pastāstīt par failu. 1484 01:10:20,190 --> 01:10:23,460 Tie nav krāsas pikseļu šajā attēlā. 1485 01:10:23,460 --> 01:10:25,120 Viņi pastāstīs par failu. 1486 01:10:25,120 --> 01:10:28,220 Un, ja jūs lasīt caur problēmu kopumu, Jums būs daudz vairāk informācijas 1487 01:10:28,220 --> 01:10:33,100 par kāda veida metadatu struktūru ir iekļauti ar bitkartes. 1488 01:10:33,100 --> 01:10:39,350 >> Bet tas ir iemesls, kāpēc mums ir šī pirmā kopumu - šo kodu šeit. 1489 01:10:39,350 --> 01:10:42,490 Mēs lasām metadatus - 1490 01:10:42,490 --> 01:10:45,800 divi gabali metadatu - failu header un info galvenes. 1491 01:10:45,800 --> 01:10:51,030 Un mēs pārbaudīt dažas tā daļas, lai pārliecinieties, ka tā ir taisnība, bitkartes failu 1492 01:10:51,030 --> 01:10:52,420 pirms turpināt. 1493 01:10:52,420 --> 01:10:55,470 >> Un atkal, tie ir informācija mums nav nepieciešams iedziļināties tagad. 1494 01:10:55,470 --> 01:10:57,720 Ja jums izlasīt problēmu kopumu, jūs saprotat šos. 1495 01:10:57,720 --> 01:11:01,370 Long stāsts īss, tie ir tikai saku, tas ir bitmap file, un 1496 01:11:01,370 --> 01:11:02,810 apstiprinot, ka. 1497 01:11:02,810 --> 01:11:05,180 >> Tālāk, mēs esam rakstiski tiem uz File. 1498 01:11:05,180 --> 01:11:05,660 Mēs redzam, ka šeit. 1499 01:11:05,660 --> 01:11:06,910 Mēs rakstām, lai out rādītāju. 1500 01:11:06,910 --> 01:11:09,260 1501 01:11:09,260 --> 01:11:11,320 Tālāk, mēs esam nosakot polsterējums. 1502 01:11:11,320 --> 01:11:15,240 Tātad vēlreiz, kā tas ir īpatnība, ar bitmap fails, dažas līnijas ietver 1503 01:11:15,240 --> 01:11:16,840 polsterējums beigās. 1504 01:11:16,840 --> 01:11:19,000 Un, ja jūs lasīt caur problēmu kopumu, jūs varēsiet uzzināt vairāk par polsterējumu. 1505 01:11:19,000 --> 01:11:22,330 Tā ir formula, lai atrastu polsterējums. 1506 01:11:22,330 --> 01:11:23,610 >> Svarīgi atcerēties - 1507 01:11:23,610 --> 01:11:29,720 mainot izmēru bitkarte failu, polsterējums izmaiņas. 1508 01:11:29,720 --> 01:11:31,970 Mainot lielumu failu, polsterējums izmaiņas. 1509 01:11:31,970 --> 01:11:34,310 Tas nekad nebūs lielāka par 3 - 1510 01:11:34,310 --> 01:11:36,510 tas būs no 0 līdz 3, ieskaitot. 1511 01:11:36,510 --> 01:11:38,930 Bet, ja jūs mainīt izmēru kaut ko, tad apdare izmaiņas. 1512 01:11:38,930 --> 01:11:47,100 >> Ja man ir tikai vienu pikseli šajā rindā, es vajag trīs baiti polsterējumu, jo 1513 01:11:47,100 --> 01:11:51,190 katra rinda ir jābūt dalās ar četrām baiti ilgi bitkartes failu. 1514 01:11:51,190 --> 01:11:56,120 Bet, ja es dubultā to, lai iet no viena pikseļa līdz diviem pikseli, kas katrs 1515 01:11:56,120 --> 01:11:59,510 teiksim, ir baitu, tad man ir nepieciešams divi baiti polsterējuma, lai padarītu 1516 01:11:59,510 --> 01:12:00,970 , kas ir vienāds ar četri. 1517 01:12:00,970 --> 01:12:04,200 >> Tātad, kad es mainīt lielumu kaut, Man vajag mainīt summu 1518 01:12:04,200 --> 01:12:06,551 polsterējumu esmu. 1519 01:12:06,551 --> 01:12:08,100 Vai tas ir jēga, lai visiem? 1520 01:12:08,100 --> 01:12:12,020 1521 01:12:12,020 --> 01:12:18,720 Tālāk, mēs atkārtot katrā rindā, vai caur visiem rindām. 1522 01:12:18,720 --> 01:12:21,400 Un tad mēs atkārtot, izmantojot katra kolonna katrā rindā. 1523 01:12:21,400 --> 01:12:25,330 Mēs ārstējot šo bitmap patīk režģis, kā mēs esam apstrādāti 1524 01:12:25,330 --> 01:12:26,490 valde 15. 1525 01:12:26,490 --> 01:12:29,200 >> Tāpat kā mēs atrisinājām ķieģeļiem, kad mēs uzdrukāts uz ekrāna. 1526 01:12:29,200 --> 01:12:31,350 Režģis rindās un kolonnās. 1527 01:12:31,350 --> 01:12:32,350 Tad - mēs redzējām šo. 1528 01:12:32,350 --> 01:12:33,840 Mēs faktiski tikai kodēta šo. 1529 01:12:33,840 --> 01:12:35,780 Mēs izveidojām dažas pagaidu uzglabāšanu. 1530 01:12:35,780 --> 01:12:38,710 Mēs lasām tur, un pēc tam mēs rakstām to ārā. 1531 01:12:38,710 --> 01:12:42,680 Tas ir tieši tas, ko mēs tikko izdarījām. 1532 01:12:42,680 --> 01:12:46,760 >> Tālāk, jo es teicu, katra līnija beidzas kādā polsterējumu, mēs 1533 01:12:46,760 --> 01:12:48,260 izlaist šo polsterējumu - 1534 01:12:48,260 --> 01:12:51,000 vecās polsterējums. 1535 01:12:51,000 --> 01:12:52,630 Un tad mēs pievienot to atpakaļ. 1536 01:12:52,630 --> 01:12:55,140 Šajā gadījumā, mēs veidojot pats precīzu faila. 1537 01:12:55,140 --> 01:12:56,180 Mēs esam tikai kopējot to. 1538 01:12:56,180 --> 01:12:57,700 Tāpēc šī līnija ir sava veida dumjš. 1539 01:12:57,700 --> 01:12:59,660 Mēs varētu burtiski tikko nodot polsterējums iekšā 1540 01:12:59,660 --> 01:13:04,290 >> Bet, ja jūs maināt faila izmēru, Vai jūs joprojām vēlaties šo līniju? 1541 01:13:04,290 --> 01:13:08,510 1542 01:13:08,510 --> 01:13:11,560 Tātad, ja mēs mainītu izmēru failu, mēs joprojām gribam, lai izlaistu 1543 01:13:11,560 --> 01:13:12,810 pār veco polsterējumu? 1544 01:13:12,810 --> 01:13:15,170 1545 01:13:15,170 --> 01:13:15,970 >> STUDENT 74: Jā. 1546 01:13:15,970 --> 01:13:17,090 >> Jason Hirschhorn: Tātad mēs darām. 1547 01:13:17,090 --> 01:13:19,290 Tāpēc Tas atkal piedāvājumus ar avota failu. 1548 01:13:19,290 --> 01:13:21,570 Mums nerūp polsterējumu no avota faila. 1549 01:13:21,570 --> 01:13:23,410 Mēs vēlamies, lai dotos uz nākamo rindiņu. 1550 01:13:23,410 --> 01:13:28,850 Bet mums nav vienkārši likt atpakaļ vecais summu polsterējumu. 1551 01:13:28,850 --> 01:13:31,540 Mums ir nepieciešams, lai atpakaļ Jaunā summa polsterējumu. 1552 01:13:31,540 --> 01:13:35,810 >> Tad, kad mēs esam mainot izmēru failu, mēs joprojām gribam izlaist 1553 01:13:35,810 --> 01:13:38,270 polsterējums vecajā failā - ko mēs esam lasījums no. 1554 01:13:38,270 --> 01:13:40,370 Bet tas, ko mēs rakstām, lai mēs ejam kas nepieciešams, lai atkal daži atšķiras 1555 01:13:40,370 --> 01:13:41,890 skaits polsterējumu, kas mēs esam noteikuši. 1556 01:13:41,890 --> 01:13:42,780 Jā. 1557 01:13:42,780 --> 01:13:44,550 >> STUDENT 75: no šīm divām kārtība līnijas nav svarīgi, vai ne? 1558 01:13:44,550 --> 01:13:46,160 Jo jūs esat apstrādes dažādi faili. 1559 01:13:46,160 --> 01:13:46,620 >> Jason Hirschhorn: Tieši tā. 1560 01:13:46,620 --> 01:13:48,220 No šīm divām līnijām kārtībā nav svarīgi. 1561 01:13:48,220 --> 01:13:49,790 Mēs rakstīt šo līniju. 1562 01:13:49,790 --> 01:13:51,430 Tas ir šeit, lai failu mēs esam rakstiski. 1563 01:13:51,430 --> 01:13:54,370 Tas ir svarīgi, lai mēs iegūtu tiesības summu polsterējumu. 1564 01:13:54,370 --> 01:13:57,560 Tas ir, lai risinātu ar failu. 1565 01:13:57,560 --> 01:13:58,560 Mēs gribam izlaist tiesības pār polsterējumu. 1566 01:13:58,560 --> 01:13:59,470 >> Mēs nevēlamies, lai lasītu - 1567 01:13:59,470 --> 01:14:01,500 ja mēs lasāt baitu laikā, mēs nav jārūpējas par šiem polsterējums baitu. 1568 01:14:01,500 --> 01:14:04,070 Mēs vēlamies, lai pārietu uz nākamo rindiņu. 1569 01:14:04,070 --> 01:14:11,800 Visbeidzot, tāpat kā Lucy deva mums, mēs cieši failus un atgriezties 0. 1570 01:14:11,800 --> 01:14:13,890 Tāpēc tas ir copy.c. 1571 01:14:13,890 --> 01:14:17,850 Un mēs faktiski wrote - mēs pavadījām lielāko daļu sadaļā rakstot šo, būtībā. 1572 01:14:17,850 --> 01:14:18,740 >> Veicāt šo. 1573 01:14:18,740 --> 01:14:22,440 Tāpēc cerams, jums ir laba humora par to, kas notiek šeit. 1574 01:14:22,440 --> 01:14:25,890 Liela atšķirība, godīgi, ir tikai šī pirmā daļa, kas nodarbojas ar 1575 01:14:25,890 --> 01:14:29,970 īpatnības bitkartes failus. 1576 01:14:29,970 --> 01:14:33,570 Tāpēc man ir kā mana nākamo slaidu, kas mums jādara? 1577 01:14:33,570 --> 01:14:35,510 Nu, pieņemsim domāt par detektīvromāns. 1578 01:14:35,510 --> 01:14:38,080 >> Un kāds, kas lasa caur problēma noteikt, ko mēs 1579 01:14:38,080 --> 01:14:41,410 jādara, detektīvromāns? 1580 01:14:41,410 --> 01:14:42,080 Vienkārši. 1581 01:14:42,080 --> 01:14:42,460 Aleja. 1582 01:14:42,460 --> 01:14:48,570 >> ALEJA: Vai jūs izņemt daļu par katru pikseli, kas apzīmē sarkanā krāsā. 1583 01:14:48,570 --> 01:14:49,730 Un tad - 1584 01:14:49,730 --> 01:14:50,730 veida? 1585 01:14:50,730 --> 01:14:51,860 >> Jason Hirschhorn: OK. 1586 01:14:51,860 --> 01:14:54,460 Tāpēc izņemt daļu katra pikseļu, kas apzīmē sarkanā krāsā. 1587 01:14:54,460 --> 01:14:57,234 Tas ir tuvu, bet ne visi no tā. 1588 01:14:57,234 --> 01:14:59,780 >> STUDENT 76: Nu, tur ir dažādi veidi, kā to darīt. 1589 01:14:59,780 --> 01:14:59,870 >> Jason Hirschhorn: OK. 1590 01:14:59,870 --> 01:15:03,070 Dodiet man vienā virzienā. 1591 01:15:03,070 --> 01:15:08,240 >> STUDENT 76: Izņemiet visus sarkans, un tad uzsvērt zilā un zaļā krāsā. 1592 01:15:08,240 --> 01:15:10,010 >> Jason Hirschhorn: OK. 1593 01:15:10,010 --> 01:15:11,830 Tātad, ņemot vērā, ka šie abi veidi - 1594 01:15:11,830 --> 01:15:15,210 tas izklausās, mēs arī tā pikseļu, tā ir sarkanā, zilā un zaļā līmeni. 1595 01:15:15,210 --> 01:15:19,350 Mēs vēlamies, lai mainītu relatīvo līmeni sarkanā, zilā un zaļā krāsā, atkarībā no 1596 01:15:19,350 --> 01:15:20,740 šajā pikseļu. 1597 01:15:20,740 --> 01:15:28,380 Ja šajā kodeksā būtu mēs mainām relatīvais sarkanā, zilā un zaļā krāsā 1598 01:15:28,380 --> 01:15:29,720 līmenis konkrētā pikseļu. 1599 01:15:29,720 --> 01:15:30,600 Pēc tam, kad mēs esam to izlasītu - 1600 01:15:30,600 --> 01:15:32,520 pirms mēs rakstīt? 1601 01:15:32,520 --> 01:15:34,564 Iedodiet man līnijas numuru. 1602 01:15:34,564 --> 01:15:35,950 >> VAIRĀKAS STUDENTIEM: 83. 1603 01:15:35,950 --> 01:15:37,320 >> Jason Hirschhorn: 83. 1604 01:15:37,320 --> 01:15:38,570 Tik labi šeit. 1605 01:15:38,570 --> 01:15:40,830 1606 01:15:40,830 --> 01:15:45,710 Par detektīvromāns, kodu, jums ir nepieciešams, lai rakstīt, ja visi iet labi tur. 1607 01:15:45,710 --> 01:15:47,640 Un tas ir tikai kods jums ir nepieciešams, lai rakstītu. 1608 01:15:47,640 --> 01:15:51,520 Jo, kā mēs dzirdējām, viss, kas jums ir nepieciešams, lai jādara, ir mainīt šos relatīvo zils, 1609 01:15:51,520 --> 01:15:54,420 sarkanā un zaļā līmeņi no katru pikseli. 1610 01:15:54,420 --> 01:15:58,250 >> Jūs esat lasīt to, un tagad jūs esat gatavojas rakstīt to ārā. 1611 01:15:58,250 --> 01:16:03,100 Kā es varu iegūt - ja man ir šī lieta sauc triple, tieši šeit, un tas ir 1612 01:16:03,100 --> 01:16:04,570 tipa RGBTRIPLE - 1613 01:16:04,570 --> 01:16:08,650 labi, ja mēs izskatījās bmp.h, kas ir RGBTRIPLE? 1614 01:16:08,650 --> 01:16:11,450 1615 01:16:11,450 --> 01:16:12,700 >> STUDENT 77: Tas struktūrai. 1616 01:16:12,700 --> 01:16:17,440 1617 01:16:17,440 --> 01:16:18,900 >> Jason Hirschhorn: RGBTRIPLE ir struktūrai. 1618 01:16:18,900 --> 01:16:22,330 Mēs redzam, ka tiesības uz leju šeit. 1619 01:16:22,330 --> 01:16:26,600 Un tāpēc, ja es gribēju, lai piekļūtu, teiksim, sarkans līmenis struktūrai, kā es varu 1620 01:16:26,600 --> 01:16:30,005 piekļūt sarkano līmeni šai struktūrai? 1621 01:16:30,005 --> 01:16:37,280 >> [KLASE murmina] 1622 01:16:37,280 --> 01:16:38,530 >> STUDENT 78: RGBTRIPLE.rgbtred? 1623 01:16:38,530 --> 01:16:47,250 1624 01:16:47,250 --> 01:16:48,856 >> Jason Hirschhorn: Vai tas ir pareizi? 1625 01:16:48,856 --> 01:16:53,040 >> STUDENT 79: Būtu triple dot, nevis RGBTRIPLE dot? 1626 01:16:53,040 --> 01:16:54,120 >> Jason Hirschhorn: Triple. 1627 01:16:54,120 --> 01:16:56,700 Triple ir vietējās mainīgais, tāpēc šeit, tur nav norādes šeit. 1628 01:16:56,700 --> 01:16:58,400 Tāpēc mēs tikai izmantot dot apzīmējumu. 1629 01:16:58,400 --> 01:17:00,480 Tas dod man līmeni sarkanā krāsā. 1630 01:17:00,480 --> 01:17:06,180 Ja es vēlos to mainīt, es tikai noteikti ir vienāds ar kaut ko citu. 1631 01:17:06,180 --> 01:17:13,190 Tātad vēlreiz, šī līnija kodu piekļūst šis mainīgais iekšā šo struct, un 1632 01:17:13,190 --> 01:17:15,070 mēs varam noteikt to, lai kaut ko jaunu. 1633 01:17:15,070 --> 01:17:20,040 >> Tātad detektīvromāns, atkal, tas ir, Būtībā, kas mums jādara. 1634 01:17:20,040 --> 01:17:21,170 Ļoti vienkārši. 1635 01:17:21,170 --> 01:17:25,020 Vienkārši mainīt dažus relatīvo līmeni, un tas ir, ja šis kods iet. 1636 01:17:25,020 --> 01:17:27,720 Izmērus, no otras puses, ir mazliet trickier. 1637 01:17:27,720 --> 01:17:30,900 Patiesībā, mainīt izmērus, iespējams, sarežģītākajiem daļa no šīs problēmas noteikti. 1638 01:17:30,900 --> 01:17:32,720 Mums ir trīs minūtes, lai iet pār to. 1639 01:17:32,720 --> 01:17:34,910 >> Bet atkal, mēs esam jau rakstīts lielākā daļa šo kodu, lai mēs 1640 01:17:34,910 --> 01:17:36,500 būtu diezgan pazīstams. 1641 01:17:36,500 --> 01:17:40,750 Kas ir dažas lietas, ko mēs vēlamies darīt, mainīt, ja esat lasīt vairāk 1642 01:17:40,750 --> 01:17:43,470 problēma, kas? 1643 01:17:43,470 --> 01:17:45,290 Ja jums dot viņiem man, mēs var runāt par tiem. 1644 01:17:45,290 --> 01:17:47,340 Kas ir dažas lietas, ko mēs vēlamies darīt? 1645 01:17:47,340 --> 01:17:47,970 >> STUDENT 80: Vertikāli - 1646 01:17:47,970 --> 01:17:52,360 tāpēc jums ir horizontāli mainīt to, bet vertikāli mainīt tā izmēru, kā arī? 1647 01:17:52,360 --> 01:17:58,475 >> Jason Hirschhorn: Tātad, ja mēs esam dota pikseļu, un mēs vēlamies, lai mainītu to, 1648 01:17:58,475 --> 01:18:03,460 Faktors, saskaņā ar diviem, tagad ir jābūt mainīti horizontāli un mainīti 1649 01:18:03,460 --> 01:18:05,220 vertikāli. 1650 01:18:05,220 --> 01:18:06,640 Vai tas ir jēga? 1651 01:18:06,640 --> 01:18:07,060 Jā. 1652 01:18:07,060 --> 01:18:09,300 Tātad tas ir iespējams lielākais izaicinājums. 1653 01:18:09,300 --> 01:18:10,430 Un mēs runājam par to, ka pēc sek. 1654 01:18:10,430 --> 01:18:11,065 Jā. 1655 01:18:11,065 --> 01:18:15,270 >> STUDENT 81: Kā es domāju par to bija jums nepieciešams izdrukāt out - 1656 01:18:15,270 --> 01:18:15,490 >> Jason Hirschhorn: Pagaidiet. 1657 01:18:15,490 --> 01:18:17,580 Nav pateikt mums, ko jūs. 1658 01:18:17,580 --> 01:18:20,620 Mēs ejam runāt loģiku. 1659 01:18:20,620 --> 01:18:21,870 >> STUDENT 81: OK. 1660 01:18:21,870 --> 01:18:25,090 1661 01:18:25,090 --> 01:18:27,410 Kāds bija jautājums? 1662 01:18:27,410 --> 01:18:28,892 >> Jason Hirschhorn: Jūs vienkārši izvirzīja savu roku. 1663 01:18:28,892 --> 01:18:31,600 Nebija ne runas. 1664 01:18:31,600 --> 01:18:32,520 Ļaujiet man prezentēt to. 1665 01:18:32,520 --> 01:18:34,560 Ļaujiet man tikai apspriest šo īsi. 1666 01:18:34,560 --> 01:18:38,400 Tāpēc mēs esam viens pikselis, mēs vēlamies atkārtot to, gan horizontāli, gan 1667 01:18:38,400 --> 01:18:39,360 vertikāli. 1668 01:18:39,360 --> 01:18:48,920 Tik ideāli, ko mēs darīt, šeit ir, mēs lasīt mūsu pikseļu, mēs rakstām to 1669 01:18:48,920 --> 01:18:51,690 Tomēr daudzas reizes. 1670 01:18:51,690 --> 01:18:54,720 >> Bet tad mums ir triks šeit, jo tad mēs gribam, lai pārietu uz 1671 01:18:54,720 --> 01:18:57,660 Nākamais līnija un rakstīt to pie sākas nākamā līnijas. 1672 01:18:57,660 --> 01:19:02,960 Tātad, ja mēs gribam atkārtot gan horizontāli un vertikāli, kas ir 1673 01:19:02,960 --> 01:19:05,050 Viens labs veids, kā to darīt - 1674 01:19:05,050 --> 01:19:06,780 viena laba, lai gan to darīt? 1675 01:19:06,780 --> 01:19:11,950 Tāpēc mums nav nepieciešams pastāvīgi meklēt ap mūsu failu, lai novietotu lietas. 1676 01:19:11,950 --> 01:19:14,360 >> Šis jautājums, iespējams, nav loģiski, bet es domāju, ka 1677 01:19:14,360 --> 01:19:15,800 atbildēt uz to palīdzēs. 1678 01:19:15,800 --> 01:19:17,210 >> STUDENT 82: izveidot masīvu? 1679 01:19:17,210 --> 01:19:20,090 >> Jason Hirschhorn: Tātad, pieņemsim domāt katra faila kā kārtas. 1680 01:19:20,090 --> 01:19:22,550 Padomāsim ziņā rindās. 1681 01:19:22,550 --> 01:19:26,670 Ja mums ir mūsu pirmo rindu no mūsu mazo attēlu, mēs varam padarīt šo rindu 1682 01:19:26,670 --> 01:19:30,640 uz lielā rindā no lielu attēlu, un tad atkārtot, ka rindas tomēr 1683 01:19:30,640 --> 01:19:34,250 Daudzas reizes tas ir nepieciešams atkārtot, nevis iet pixel by pixel, 1684 01:19:34,250 --> 01:19:37,260 kas izpaužas mulsinoši, kad nodarbojas ar failiem. 1685 01:19:37,260 --> 01:19:38,730 >> Jo, ja mums bija - 1686 01:19:38,730 --> 01:19:41,260 Es skrienu no kosmosa. 1687 01:19:41,260 --> 01:19:46,490 Ja tas ir mūsu failu, un mums ir, ka viens pikseļu tur, un mēs vēlamies, lai tā 1688 01:19:46,490 --> 01:19:49,840 labi tur, mums joprojām ir dažas lietas, kas nepieciešams, lai iet tur, kad mēs esam 1689 01:19:49,840 --> 01:19:51,450 rakstīšanas un radot mūsu jaunu failu - 1690 01:19:51,450 --> 01:19:53,250 Mūsu failu, kas ir divreiz lielāka. 1691 01:19:53,250 --> 01:19:56,820 >> Bet tas ir tiešām grūti ar failu funkcijas izlaist ap jaunām līnijām 1692 01:19:56,820 --> 01:20:00,260 piemēram, ka, un tad doties atpakaļ šeit un nodot lietas tur. 1693 01:20:00,260 --> 01:20:04,500 Tas ir gandrīz neiespējami kaut ko darīt piemēram, ka, ja tas ir jēga. 1694 01:20:04,500 --> 01:20:10,180 Tātad, ja mēs domājam ziņā rindās, mēs varam veikt mūsu rindas, un tad ielieciet to - 1695 01:20:10,180 --> 01:20:11,720 atkārtot rindas vertikāli. 1696 01:20:11,720 --> 01:20:15,860 >> Un tas, kā mēs galā ar izmēru vertikāli, nevis horizontāli. 1697 01:20:15,860 --> 01:20:18,810 Tas bija sava veida ātri, un nedaudz mulsinoši. 1698 01:20:18,810 --> 01:20:22,375 Diemžēl mūsu laiks ir beidzies. 1699 01:20:22,375 --> 01:20:27,340 Es stāvēt ārpus tiem no jums, šeit, kas ir jautājumi par 1700 01:20:27,340 --> 01:20:30,500 Problēma komplekts, ieskaitot atgūt. 1701 01:20:30,500 --> 01:20:32,320 >> Tā ļauj atlikt tagad. 1702 01:20:32,320 --> 01:20:34,480 Un atkal, ja jums ir kādi jautājumi, mēs varam tērzēt ārā. 1703 01:20:34,480 --> 01:20:38,294