JASON Hirschhorn: Ongi etorri, denek, Astea eta 6. Zoriontsu ikusteko bizirik nago eta ondo Quiz 0 ondoren, ezagutzen dut delako apur bat zakarra izan zen. Baina zorionez, duzun guztia egin, oso ondo. Eta, beraz, hori da zoragarri. Oraindik nire atalean bada, gehiena eman dut zuetako atzera zure galdetegiak dagoeneko. Duzu pare bat, bilera dut klase ondoren. Eta zauden luzapena ikaslea eta gero ez dute zure galdetegi jaso duzu atzera oraindik, zure TF da seguru asko ari da lanean eta kalifikatzean, eta itzuli egingo duzu laster. Beraz, nire luzapena duten ikasleak dira oraintxe behaketa - zorionez bizi - Zure galdetegiak lortuko dut Hemendik gutxira, baita. Gure agenda gaur honela da. Lehenik eta behin, errepasatuko goaz baliabide duten CS50 duzun eskaintzen du. Ondoan Quiz 0 baino gehiago joan goaz, eta Edozein galdera erantzun dut inor arazo partikular inguru ditu. Eta gero, gu joan egingo gorako fitxategia / I eta arazo multzo 5. Azken bi gai horiek hartuko atal gehienak gaur sortu. Zerrenda hau jarri dut sortu gisa Astero oroigarria duzun guztia, baina nukleoaren atalean, 90 minutu besterik ez dugu - dugu ez dira guztia estaltzeko gai dela I nahi duzu guys estaltzeko love litzateke. Baina baliabide tona bat egin dugu gainean marraztu nahi duzu ezagutzen duzun bezala Materialaren eta lanaren bidez zure arazoa ezartzen du. Oroigarri bat konektatuta izan nuen testu bat kutxa, sortu zuretzat bete baduzu Niretzat edozein iritzi dute, bai positiboak eta konstruktiboa, atal buruz. URL duten eskubidea behera hemen dago. Beraz, mesedez, har ezazu une bat izanez gero iritzia, ala atal zehar, edo, ondoren edo ondoren bideoa ikusi duzu konektatuta, niri eman zure iritzia. Benetan eskertzen dut edozein eta guztiak haren. Beraz izan dut elkarrizketetan txiki beharrik nire asko Aste osoan zehar ikasleek - I entregatu gisa atzera galdetegiak, buruz hitz egiten Jakina, ikusten nola egiten ari zarenean. Eta gai bat baino gehiago etorri eta baino gehiago mintzatzen naizenean - en bereziki - arazoa ezartzen du. Eta gaia duten kapsulatuak dut on board oraintxe. Funtsean, ez dago desberdintasun bat dela zerbait inflexio arteko behar bezala eta zerbait egin duela ondo egin. Jende gehienak dira egiten dute fantasiazko zuzentasun aldetik - 5 edo 4 psets guztietatik en. Jende gehienak dira lortzean horiek denbora guztia. Hala ere, egiten duzun besterik ez delako zerbait eskubidea ez du esan nahi duzun egin zerbait dotore, edo eraginkortasunez, edo gisa garbian duzun bezala egin izan da. Eta hori zer diseinua da - eta bat txikiagoan gradua, estiloa - ardatzak dira. Beraz duzun guztia bultzaka ari naiz, eta beste TFS ari zaren guys bultzaka, txanda ez ezik zuzena dira, baina buelta gauzetan ondo kodifikatu dira gauzak hemen. Ez alferrikako begiztak FOR egiten, Ez aldagai bada birkalkulatzeko daukazu ez izateko. Adibidez, arazo atzera begira ezarri 4, noiz da adreilu jarriz pantaila, ilara bakoitzean - batean adreiluzko behin Emandako errenkadan y koordenatua bera du - altuera bera koordinatzeko. Beraz, y koordenatua ez zuen behar barrualdean barruan kalkulatuko litekeena erabiltzen duzun begizta FOR habiaratu adreilu horiek jarri pantailan. Kalkulatu nahi behin bakarrik behar da denbora lerro batean pizten duzunean, edo mugitu behera errenkadan. Esateak ez dira 10 adreilu bada batean errenkadan, adreilu bakoitza bera izan daiteke y-koordenatua den eta y koordenatua duten besterik dira kalkulatzen horiek guztiak behin. Ez du behar kalkulatu behar 10 aldiz, ez du, kalkuluak egiteko premia benetako gertatuko funtzio deia - the gracked funtzio deia berria. Beraz, hori izan zen nahasgarria apur bat bada duzu, oro, gauzak ez dute behar aldi bakoitzean bakarra gertatuko FOR begizta baten bidez joan behar ez izatea FOR begizta barruan jarri, eta ez behar gertatuko joan den bakoitzean FOR begizta bidez. Beste diseinu adibide ona ikusi genuen Astea 3 15 urtean, mantendu ahal izango duzu zero pista. Beraz, taula hasieratu duzu, gorde - aldagai global batean, agian, - x eta zero du y koordenatua. Eta gero, betiere duzu - zure mugimendu funtzioa, betiere, egiten dituzun arrakastatsua mugimendu bat, eguneratu da zero kokalekua. Duzula salbatuko lirateke egin beharrik begiztak bidez bilatzeko FOR habiaratu taula aldi bakoitzean zure mugimendu funtzioa eta jakin zero, edo fitxa aurkituko, eta ondoren egiaztatu, zer ondoan. Horren ordez, kokalekua duzu zero, besterik ez duzu begiratu ahal gainean, azpian, eta ezker eta eskuin hura ere, aurkitu fitxa bilatzen ari zaren. Beraz programen gara terminoetan idatziz, Oraindik nahikoa handia inoiz ez dute duten diseinu erabakiak horietako batzuk dira benetan oztopatzen ari den programa, edo egin motelago exekutatu, edo agian memoria agortu. Baina ari gara oraindik duzu bultzaka guys idatzi bezala dotore eta kodea eraginkorra ahalik. So egiten baduzu, azkenean, gauzak idatziz hori nabarmen handiagoa esparrua, dute egingo ona idatzia zuzena izateaz gain diseinatzeko. Beraz duzu zenbaki bat ekarri daudelarik. Hori da zerbait bilatzen ari gara - zerbait jarraituko dugu bultza on guys. Inoiz duzun buruzko edozein zalantza izanez Zure programa diseinatzea, aske iristeko niri, eta pozik nago Zure programa ibiltzeko zurekin, eta seinalatu diseinu batzuk , egin duzu, eta ematen dizute batzuek erabakiak nola egin behar da on iradokizunak nahiz diseinu erabakiak hobeto. Beraz, mugitu joan Quiz 0 buruz hitz egiteko. Hori egin aurretik, ez du inor buruzko edozein zalantza zer Nik estalita orain arte? [Rustling NOISE] JASON Hirschhorn: Zazpi segundo. Ados. Hitz egin Quiz 0 buruz pixka bat utzi. Duzun gehienak zure Quiz 0 pasa dute. Ez, zorionez, egin duzu bada hura gogoratzen duzu pixka bat. Baina grabatutako bada Nik Quiz 0, gero halaber PDF sarbidea online lagin konponbideak. Du inor baino lehen edozein zalantza salto aste en material sartu dugu buruz Quiz 0 on arazo jakin bat - zergatik erantzuna da, zer da? Ezer buruz nahastu da inor? Arazoa lortu, nahiz eta eskubidea, baina besterik ez da azaldu zidan pixka bat nahi nuke gehiago, pozik orain horrela egin dut. Beraz, you guys galdetu nion dute etorri batzuk prestatu Quiz 0 buruzko pentsamenduak. Beraz, nork gurekin lortu nahi galdera batekin edo hasi Quiz 0 buruzko azalpenik? [PAPER rustling] JASON Hirschhorn: Ez denek egin, ezin hobeto. Beraz, ezagutzen dut [Barreak] han zenbait galdera izan Quiz 0 buruz. Ados. Bai. Ompica. OMPICA: Zenbakia 10. JASON Hirschhorn: Zenbakia 10. Zein izan zen 10 zenbakia? OMPICA: The - JASON Hirschhorn: haven't I - OMPICA: honako hauek dira - JASON Hirschhorn: kopurua 10 izan zen, zortzi i - idatziz zortzi i? OMPICA: Bai. JASON Hirschhorn: Ados. Beraz, beste galdera bat izan dezakezu galdetu zen naiz prescient? Erantzuna bai da. Galdetegi baino lehen atalean, I eskatu bai Sterling kode guys duzu eta Zortzi i. Biek gertatu galdetegi agertuko. Beraz, espero dugu, ordaintzen duzu duten arreta. Eta izan bada, gero nahi duzun ziurrenik ondo egindako bi horietan. Baina zortzi i nahi, ez dugu benetan kodea da klasean, baina, izan zen berriro, galdetu quiz da. Beraz, hartu gauza pare bat ohartu zortzi i coding denean. Lehenik eta behin, galdera bakoitzeko, izan zen egiaztatu behar zituela baduzu katea null berdina zen. Bikote pertsona bat geroago egiaztatu saiatu programan parentesi sua bada i zen - beraz, pertsonaia zehatz bat katea - zen null berdina. Baina gogoratu, nulua dela funtsean - ona da pentsatzea zero erakuslea gisa nulua - zero erakuslea - oroimenez someplace non inoiz ez sartzeko. Beraz, zerbait bada null berdina da, zuk ezagutzen duten ez da hasieratu, edo ez dago ezer han. Beraz, s char izar bat da, s parentesi i char bat da. Beraz, zentzuzkoa da sua alderatu null, baina ez a bracket i nuluak. Baina, berriro ere - horrela izan zen lehenengo gauza ziren ustezko duzu egin - egiaztatzeko ziur egin duzu benetan benetako kate bat lortu. Hurrengoa, bidez joan nahi duzun katean pertsonaia bakoitzak. Eta beraz, s parentesi bat bezala izango litzateke i, adibidez, i zure iterator bada. Eta izaera hori hartuko, eta bere benetako balioa lortzeko. Duzu char gisa gordetzen da, baina ASCII zero balioa - zero pertsonaia gisa - ez da benetan osokoa zero. Beste zenbaki batzuk ahal duzun da begiratu ASCII taulan. Beraz, modu batean nahi duten zuzendu - ziurrenik for zuzentzeko modurik onena duten - da bertatik kendu pertsonaia balioa - pertsonaia bat bezala zero. Beraz, ken barra arrunta, zero, beste barra arrunta. Edozein zenbaki izan zaitu char bat bezala, eta berdin da Benetako osoko gisa zenbakira. Eta hori oso planteamendu antzekoa da jende asko parte hartu arazo multzo 2, Zesar ekin eta Viginere - zifraketen horiek, duzunean ziren haiek biratzen. Duzu bertatik zenbaki gisa izan beraz ostean zero, bederatzi, eta gero - arabera non doa azken zenbakia da - da biderkatu behar duzu 10 boterea batek. Batzuek atzera mugitu behar aurrean, eta gizabanakoaren biderkatuko 10 boterea batek kopurua. Batzuek mugitu aurrealdean itzuli - eta beraz, hartu altuena zenbakiak aginduko lehen - eta batean horiek gorde litzateke global counter aldakorra. Eta, ondoren FOR bidez aldi bakoitzean begizta, biderkatu erraldoi global aldagai kontraerasoan 10, egiteko hurrengo char espazioa. Beraz, hori izan zen nahasia apur bat gabe idazten dit taula gainean. Baina lagina konponbidea zure eskura. Baina horiek egiten dute gauza handia bilatzen dugu. Halaber, txeke bat elkarren ziur banakako pertsonaia hain zuzen ere, izan zen bat zero eta bederatzi, eta ez arteko izaera beste pertsonaia batzuk, A bat bezala, adibidez. Horiek bilatzen ari ginen gauza izan ziren galdera horretan. Du horrek zure galderari erantzuteko? OMPICA: Bai. JASON Hirschhorn: Ados. Ba al dago beste edozein galdera Quiz 0 buruz? Zer konpilatzean buruz? Denek eskubidea konpilatzean? N º Baziren bat - [Barreak] Buruzko zalantzaren konpilazio prozesuak? Wow. [PAPER rustling] JASON Hirschhorn: Bai. Michael. PATXI: - ausazko zenbaki 7 da? JASON Hirschhorn: Zenbakia 7. Kopurua 7 ausazko osoko zenbaki bat eskuratu zen. Bikaina. Beraz, zenbaki oso baten bat ematen ari zarela eta bat osokoaren b, eta ausazko bat nahi duzu a eta b arteko zenbaki osokoa. Benetan bat hau idatzi ahal izango dugu on taula, zeren hau kode-lerro bat izan zen - egin behar den modu batean. Beraz gaude emandako drand gisa funtzioa erabili izan dugu. Eta zer ez drand - nik ezartzen dira suposatuz - zer drand itzuliko du? PATXI: 0,0 eta 1,0 artean karroza bat. JASON Hirschhorn: zenbaki bat - bai. 0 eta 1 arteko zenbaki bat. Eta beraz b ditugu eta bat. Eta gero, gure ausazko zenbaki dugu 0 eta 1 arteko gurekin emandako drand arabera. Batzuek b jartzen saiatu, edo b ken bat, edo horiek barruan zerbait parentesiak. Dutela ari zela esan nahi funtzio honen argumentuak. drand ez du argumenturik hartzen - bezalako getString du ez du argumenturik hartzen. Beraz, besterik open paren da, hurbil gurasoei - eta hori, berez, ez da funtzio deia. Eta hori zenbaki bat ematen dizu 0 eta 1 artean. Jakina, sorta oso bat daukagu zenbakiak izan daiteke sartu Esatea, b 10 bada eta bat da 5, benetan dugu 5 sorta batekin zenbaki bat nahi. Beraz, egin behar dugun hurrengo gauza da biderkatu hau sorta b ken baten bidez. Beraz, suposatuz hori biderkatu. Eta horrek emango digu zenbaki bat barruti jakin baten barruan. Eta barruti zehatz izateaz b ken arteko desberdintasuna. Eta, azkenik, hori izango bakarrik eman etatik - b ken baten arteko sorta esan da 5, horrek emango digu 0tik 5era kopurua. Baina bat hain zuzen ere 5 bada, sustatzeko behar dugu sorta non da arte honetan benetan ustezko, izan nahi bat gehituz. Beraz, logika eskuinetik lortzen. Eta gero, ez litzateke duzu beste galdera bat? PATXI: n º Sentitzen dut benetan muda oraintxe. [Barreak] JASON Hirschhorn: N º Ez sentitzen benetan muda. Pertsona kopuru bat borrokatu Galdera honekin. Eta, ondoren, beste galdera da, drand, , esan duzu ematen dizu mugikor bat - mugikor bat itzultzen du. Baina funtzio hori benetan eskatu egiteko osoko bat itzuli behar da. Zuk ez duzu hau esplizituki bota zenbaki oso bat, horiek direlako eragiketak egiten a guztiak bezala tratatzea izango flotatzen - koma mugikorreko zenbaki gisa. Borondate hau atsegin - hau nahiz zenbaki oso bat, borondate hau da behar bezala biderkatu. Biderketa guztietan funtzionatuko du. Zuk ez duzu hemen bota. Izan ere, ez zenuke bota. Zela - duzu zenbaki bat bota izanez gero duten 0 eta 1 artean dago - ausazko zenbaki bat, puntu mugikorreko - orduan bai izango da izan 0 edo 1 bakarrik, beraz, doitasun hori guztia galtzen duzu. Baina amaieran, eta itzuli, automatikoki lortzen da bidaliko atzera osoko gisa. Beraz, ez duzu egin zeure burua galdaketa. Beraz, honen erantzuna izan zen galdera hori, kopurua 7. Quiz 0 beste edozein galdera? Bai, Annie. ANNIE: Noiz egin recursive erabiltzen dugu - noiz etorriko begiztak erabiltzen dugu? JASON Hirschhorn: Noiz erabiltzen duzu recursive - beraz, oro har, eta pros eta txarrez errekurtsibitate versus etorriko hurbilketa bat. Daiteke inor pro bat edo bat eskaintzeko? Mesedez? Inor ezin. Duten pro bat edo con bat eskaini ahal? [PAPER rustling] STUDENT 1: errekurtsiboa da hain coding - gutxiago Idazteko? JASON Hirschhorn: Beraz, oro har, errekurtsibitate batez ere, funtzio bat - edo merge bezalako algoritmo bat sort - eta horrek erabaki bera planteamendu errekurtsiboa batera - gehiago zuzenean izan daiteke errekurtsiboki kode-. Eta besterik ez du zentzurik gehiago Errekurtsiboki egin. Beraz errekurtsibitate pro bat izango litzateke. Beste batzuk? Bai? STUDENT 2: errekurtsibitate nahi Con - Memoria gehiago erabiltzen du. JASON Hirschhorn: Beraz, zehazki eskubidea. Funtzioa errekurtsiboa bat gehituz jarraituko du pila pila markoak. Duzu asko jarduten ari hala bada zenbakiak, eta eduki hau deitzeko asko funtzionatu, orduan zalantzarik izango duzu hartzen memoria gehiago, berriz, etorriko hurbilketa bat bakarra jarriko pilatu markoa pila, zeren dena gertatzen da funtzio bat barruan. Beste edozein abantailak eta desabantailak? Bai. STUDENT 3: errekurtsibitate Pros. Ez duzu hemen zehaztu aurrera zenbat aldiz kodea izan errepikatu behar den. Aldez aurretik finkatutako kopuru bat izan dezakezu duten, batetik bestera joateko orduan daukazula aldiz errekurtsibitate hobea da, zeren emaitza hori hartzen du. JASON Hirschhorn: Nik uste dut, hori egia da. Baina uste dut bi kasuetan inoiz egiten duzun - seguruenik zenuke batzuk lortzeko sarrera erabiltzailea. Edo funtzio honetan sarrera batzuk izango lituzke duten zehaztuko litzateke zenbat aldiz da exekutatu beharko luke. Beraz, oro har, ez egiten duzun kode gogorra - are gehiago etorriko hurbilketa bat - nola begizta zenbat aldiz exekutatu behar dira. Ba beste zinen duzu buruz, Annie pentsatzen? Ados. Beraz, horiek dira, ziurrenik, bi - pro handiena eta larriena recursive bat versus con etorriko hurbilketa bat. Ados. Beste ezer Quiz 0 on? Dezagun aurrera. Fitxategia I / O. Ez dago labur zoragarriak aste honetan file / I duten zorionez anitz ikusi duzun aldiz, eta miresten. Lan asko zela sartu zen, eta dut entzun ezin lagungarria da. Halaber diapositiba honetan loturan sartzen dut, kasuan ez duzu izan bat aukera ikusi 10 aldiz. Beraz, dira zehar laburki joango gara ireki eta lanean urrats garrantzitsu fitxategiak, eta, ondoren ditugun joan kodetze arazo bat murgildu aurretik Arazo multzo aztertzen. Beraz, berriro ere, hau jarri nahiz on noa pantailan, baina ez dut nahi hitz egingo besterik zer gara buruz minutu bat hemen egiten agiriarekin I/O-- zer esan nahi du? Horrek esan nahi du sortu ahal izango dugu gure programak, eta gero gure programak irteera, eta ez eraginik egin dute gure programaren kanpoko mundua. Baina fitxategiak lanean hasten gara - bai irakurtzen haietan eta sortzeko Horietako - bere eragina izan dezakegu gure programaren kanpoko munduarekin. Just like Microsoft Word ez zen gai bada Word edozein dokumentu egiteko, ondoren Microsoft Word irten behin, zure guztia lana desagertu egingo litzateke, eta ez litzateke benetan izan ezertarako balio. Ez, azken finean, gai izan nahi dugu ahal duen eraginik programak idatzi du haien munduan, bai hartuz Sarrerek konplexua - fitxategiak terminoetan eta fitxategiak bidez, eta, gainera, interesgarria sortzeko eta sinesgarria irteerak - fitxategi mota ezberdinen aldetik. Beraz, horregatik ari gara hasita nola fitxategiekin lan egiteko ikasten. Zehatzago esanda, zer egiten dugu honako hau da. Oso erraza da. Badira urrats pare bat besterik ez dira, eta zerrendatzen dira hemen kode honetan. Beraz, bidez joan da joan kode lerro hau lerro. Lehenik eta behin, ikusten duzu nabarmenduta - duzunean fitxategi batean ari zara lanean, fitxategi mota edozein dela da, irekitzeko behar duzu. Eta hori dei bat fopen da - hementxe. Honakoak duzun fitxategi-izena. Fitxategia ez badago zure direktorioan, edo karpeta non programa honetan bizitza, eta gero, baita ere besteak beste, behar duzu non fitxategi hori da bidea. Bere gain hartzen dugu, hori "text.txt" izeneko fitxategi - testu-dokumentu soil bat - da karpeta berean programa honetan bezala. Beraz, hori beste gauza bat hartu behar da Kontuan - fitxategi bat ireki nahi baduzu nonbait, benetan behar duzun Bere kokapena, besteak beste. Bigarrenik, argudio bat pasatzeko dezakezu fopen, eta hori da, zer egin nahi duzu fitxategia duen. Badira hiru argudio nagusia fopen pasatzen joan zaren. Nork eman ahal dit hiru horiek? Nork eman ahal dit horietako bat? Bai. STUDENT 4: fitxategi izena? JASON Hirschhorn: Barkatu. Hiru argudio nagusia gainditu ahal izango duzu bigarren argumentua fopen gisa. Arrazoi duzu - fitxategi-izena Lehen argumentua da. Baina, bigarren argumentua fopen dira oro har, hiru kate, eta - bai. Aleja. Aleja: append A. JASON Hirschhorn: A, nahi baduzu fitxategi bat badago dagoeneko eransteko. STUDENT 5: irakurketarako R. JASON Hirschhorn: A, zuk fitxategi bat irakurri nahi. STUDENT 6: W idazteko. JASON Hirschhorn: Eta w, baduzu fitxategi bat idatzi nahi. Beraz, kasu honetan, idazten ari garen fitxategia, beraz w dugu. Irekitzean, gorde ere duzu fitxategia nonbait, eta hori batera ezkerreko eskua alde kodea esleipen operadorea - Erakuslea sortzeko naiz fitxategi batean , kasu, fitxategi horretan deitzen. Ez gara kezkatu zer honek txapelak guztiak FITXATEGIA gauza da. Nahikoa izan bedi, luzea da zeroen eta bai erreka. Eta hori, nola ditugu jarduten du eta ulertu. Hurrengo gauza egin behar dugu - eta hau oso garrantzitsua - betiere, fitxategi bat ireki - hain zuzen ere, betiere malloc deitu, egiteko Adibidez, eta memoria pixka bat lortu eta saiatu eta gorde erakuslea, beti duzu Ziur hori egin begiratu nahi duten funtzioa ez itzultzeko nulua. Beraz, kasu honetan, egin egiaztatzen ari gara ziur benetan ireki dugu behar bezala fitxategia, eta ez zen gure programa error no. Ondoren, behin egiaztatuko dugu ziurtatu lan-fitxategi bat dugula, ahal dugun idatzi, edo irakurri, edo fitxategi eransteko. Kasu honetan, ni besterik ez inprimatzeko dut fitxategi honetan lerro bat. Nola ez dela ezagutzen dut? Beno, funtzio hau erabiltzen dut Fprintf deritzo. Erabili behar izango duzu funtzio guztiak , edo idatziz, edo irakurtzen denean fitxategiak manipulatzeko antzekoa izango da ikusi aurretik duzu, baina funtzio F letra batekin hasi, fitxategia zutik. Eta Fprintf, ez bezala gure inprimatu normal aplikazioa, argudio bat bezala hartzen du, eta fitxategia da, non duzu lerro hau inprimatu nahi. Ez dut ezer izan nahi ohai eskuinean. Ez dut hirugarrena izan printf argumentua - edo bigarren printf argumentua, the Hirugarren argumentua Fprintf nahi, dudalako ez edozein leku-markak hemen. Ez dut aldagaiak edozein barne naiz. Baina, berriro ere, Fprintf eta fitxategi horien guztien fitxategiekin lan egiten duten funtzio oro har-fitxategia behar du horren gainean jarduten ari dira. Azkenik, azken garrantzitsua den gauza egin da fitxategia itxi, besterik ez bezalakoa batera -, betiere, zerbait malloc dugu, zerbait askatzea, kausituko dugu nahi dugun memoria leak izan - nahi dugu gure fitxategia itxi. Programa honen itxiera gabe irten bada fitxategia, odds dira ezer pasako litzateke oker batez ere, hura fitxategi txiki bat izan zen. Baina da, zalantzarik gabe, Kodetze ona eta landu zure koadernoan beti itxi noiz erabiltzen zu amaitu. Beraz, fitxategia oinarriak I / O. da Seguruenik duzu horren aurretik, edo Ikusi izan da labur fantastiko horretan. Du inor edozein zalantza, aurretik praktika kodifikazioa batzuk sartzen joan gara arazoak, fitxategi about / I edo urratsak besterik joan baino gehiago dut? [Idazketa SOUNDS] JASON Hirschhorn: Do you galdera bat, Avi izan? AVI: N º JASON Hirschhorn: Ados. Beste itxaron noa zazpi segundo. [Barreak] Duten punta benetan ona da. Zaudete besterik ez dut gogoko galderak eginez. Hori da isuna. Ados. Beraz, gure lehen praktika arazoa da, gaude funtzioa bikoiztu joan komando lerroko tresna bat duzula seguruenik kopia - aurretik erabil - kopia tresnarekin. Cp idazten baduzu, eta ondoren pasa ezazu bi zure terminal argumentuak, ahal duzun fitxategi batean kopiatu. Eta horixe da goaz oraintxe bertan idazteko. Beraz, berriro ere, irakurketa diapositiba honen off, nuke eramango duen programa bat idatzi duzun bi eta komando-lerroko bi bakarrik argumentuak - iturburu-fitxategi bat eta helburuko fitxategi batean - eta kopiak iturburua edukiak Helburu fitxategia bezala itzultzen aldi berean byte bat. Beraz, asko eskatzea da. Berriz ere, hau hurbilketa ona izan da Ez joan zuzenean C kodean, baina hautsi behera urrats pare bat sartu. Lehenik eta behin, logikaren pentsatzen - zehazki zer duzu galdetzen dut egin - eta ulertzen du guztiak Arazo honen urratsak. Ez C, besterik pseudocode batzuetan, edo nahiz eta eredu mental bat zer ari den gertatzen. Ondoren, behin pseudocode behera, irudikatu pseudocode nola mapak tresna eta gauzak dugu kalera ikasi nahi C. erabili Eta, azkenik, behin izan duzun guztia elkarrekin, arazoa moldatu daitezke. Hartu 5 eta 10 minutu behar arazo honen inguruan lan egiten. Argibideak jarri dut atzera bigarren bat sortu. Eta gero ari gara baino gehiago joan da joan pseudocode, eta kode talde gisa bizi da. Oraindik bitartean edozein zalantza baduzu honetan lanean, sentitzen free goratzeko eskua, eta etorriko naiz inguruan, eta erantzun horiek. STUDENT 7: Ezin dut mugitu paper zati bat? JASON Hirschhorn: Zer gertatzen da? [Idazketa SOUNDS] JASON Hirschhorn: Ados. Goazen pseudocode zehar lehenik, eta orduan emango dizut pare bat gehiago coding amaitzeko minutu. Who me hasteko off nahi lehen lerroa Funtzio hau pseudocode? STUDENT 8: Check ziur zuk eman bi fitxategiak. JASON Hirschhorn: Ados. Eta ez badugu? STUDENT 8: 0 itzuliko nuke. JASON Hirschhorn: itzuliko gara Beharko 0? STUDENT 8: a itzuli - blanking. Barkatu. JASON Hirschhorn: Bai. Ziurrenik ez 0. 0 esan nahi duelako dena zen ona. Ados. Beraz, lehen lerroan da pseudocode neurtzen. Nork du pseudocode bigarren lerroan? STUDENT 9: Open bai fitxategiekin? JASON Hirschhorn: Ireki bi fitxategiak. OK? STUDENT 10: Begiratu fitxategia NULL bada? JASON Hirschhorn: Check egiteko ziur ez NULL dira. Bat alde batera utzita - slash 0 - dela NULL? STUDENT 11: N º JASON Hirschhorn: Hori ez da NULL. Duten NULL amaierako deritzo. Benetan l bakarra idatzita. Beraz, horren aurka zerbait checking - hori da benetan pertsonaia bat - beraz, horren aurka zerbait egiaztatzen da ez ikusteko egiaztapena berdina bada berdinen NULL. Eta pertsona batzuk - beren ariketak eta euren arazoa on Multzo - Have got du horiek nahastu bi. Baina horietako bi dira Izan ezberdinetan. Kate bat amaitzen dugu - one 0 erakuslea da. STUDENT 12: Zergatik ez egiaztatu behar duzu ziurtatu duten fitxategiak ez dira NULL horiek ireki aurretik? JASON Hirschhorn: Beraz irekia aurrezten fitxategi honetan zerbait. Eta hona itzuli baduzu - beraz, lerro hau - fopen - emango dizu helbide bat eta denda Funtzionamendua bada fitxategiko helbide horretara. Hura ez balitz, hura NULL gordeko du - STUDENT 12: Oh. Ados. Lortu duzu. JASON Hirschhorn: irudiak ere. Beraz, ezin duzu NULL arakatuko zuk ireki aurretik nik haiek. NULL esan nahi du zerbait ez ondo funtzionatuko. Ados. Beraz, egiaztatu ziur ez da egin behar? Edo dira? Zer egiten dugu uste? Horrekin joan beharko dugu. STUDENT 13: Is. JASON Hirschhorn: da? Era berean, ez da? STUDENT 13: Is. JASON Hirschhorn: Ados. Batzuk izan dirudi dugu adostasun horretan. Orobat NULL da. Ados, hurrengo pseudocode lerroa. Nork ez du eman dit lerro bat oraindik? Zuretzat izango dugu itxaron. Bai. STUDENT 14: irakurtzen duzu lehen fitxategitik? JASON Hirschhorn: Ados. STUDENT 14: Edo fscanf erabiltzen dugu edo lehen duten fitxategia antzeko zerbait? JASON Hirschhorn: Beraz nahi dugu lehen fitxategitik irakurri eta - dezagun jarri duten hemen. Iturburu fitxategia irakurtzean. Eta gero, zer egiten dugu dugu ondoren iturburu fitxategia irakurtzean? Norbaitek? STUDENT 15: Idatzi sartu Helburu fitxategia da? JASON Hirschhorn: idazten dugu helmuga fitxategia, eta - Ados. Zer gehiago dugu, falta dira? Norbaitek ez du eman duten me a Oraindik kode line - pseudocode neurtzen. Bai. STUDENT 16: Agian beti egiaztatu ahal izango duzu ala ez dago irakurri zerbait da, hurrengo lerroan bezala? Duten hurrengo lerroan bezalakoak dira, ikusiko balu. [ELEKTRONIKOA BEEP] JASON Hirschhorn: Oops. Hori da nire journaling software da. Bai? STUDENT 16: Bai. JASON Hirschhorn: Beraz, ematen zait denbora gehiago. STUDENT 16: Check ala ez dago batetik, oraindik ere, hurrengo lerro bat iturburu fitxategia irakurtzeko. JASON Hirschhorn: Ados. Beraz, ez dugu irakurtzen lerro - irakurtzen byte ziren hemen - baina zuzena zaudenean. Irakurtzeko eta idazteko arte nahi dugu daude byte gehiago ez. Ados. Eta, beraz, horiek benetan izan behar du koska pixka bat, ari dira han pean delako. Ezta? Oraindik dugu byte atera arte, goazela iturburu fitxategia irakurri eta idatzi helmuga fitxategira. Eta gero, zer da, azken pseudocode lerroa? Norbait ez eman niri zerbait oraindik. STUDENT 17: Itxi fitxategiekin? JASON Hirschhorn: Zehazki. Itxi fitxategiak. Beraz, ez dago gure pseudocode da. Pseudocode jarri sartu noa gedit, eta minutu pare bat dugu honek kode egingo elkarrekin. Ados. Gaitezen ezagutu talde bat bezala hasi zen. Nishant, nire fitxategi berri daukat. Besterik ez dut ireki hau sortu. Dokumentu Izengabea 1. Zer egin behar dut lehenengo gauza? Nishant: Include liburutegiak? JASON Hirschhorn: Ados. Zer liburutegiak? Nishant: stdio.h, stdlib.h, uste dut? JASON Hirschhorn: Ados. Zer da milaka stdlib? Nishant: ahaztu dut. JASON Hirschhorn: Ados. Beraz, besteak stdio. Zer egin behar dut aurretik ere Hasten naiz programazioan? Nishant: goiburu bat idatzi? JASON Hirschhorn: nola get ez dut koloretako? [AHOTS INTERPOSING] Nishant: Nola koloreko lortu duzu? JASON Hirschhorn: nola ez margotzea dut programazioan? Nishant: Ez dakit. Oh. Gorde. JASON Hirschhorn: gorde. Bai. Gorde egin behar dut bat. C gisa. Beraz gorde desktop cp.c. gisa on Gozoa. Eta estilo osoa lortu nahi badut puntuak, zer I behar goialdean, besteak? Nishant: zure izena, izena idatzi izan duzu programan, eta helburua du baita programaren? JASON Hirschhorn: Looks good. Bikaina. Beraz, hasi zen gurekin off primeran duzu. # Include - ere dugu idatzi egingo - Ados. Beraz, guztiak dut ezarri joan dela uste dut. Nork du kodearen lehen lerroan niretzat - edo Kode lerro hori gure lehen asetzeko hartuko du pseudocode azalpenik? Duzu. STUDENT 18: Ez luke int izango da argc, eta, ondoren, char * argv? JASON Hirschhorn: dut uste eskubidea zaren. Dezagun aldatu, paren nagusia int da, int argc, koma, char * argv? Horrela? STUDENT 18: Parentesiak. JASON Hirschhorn: Parentesiak. Irekitako parentesia, ixteko kortxetea, itxi gurasoa. Perfektua. Orain komando-lerroko argumentuak hartu ahal izango dut. Ados. Bermatzeko gaude emandako bi fitxategiak. Eman dezakezu zidan baita. STUDENT 18: argc bada - Alde honetan ez berdinak 3. JASON Hirschhorn: bada paren argc ez berdina: 3? STUDENT 18: Bai, itzuliko duzu 1 edo ezer. JASON Hirschhorn: Barkatu. STUDENT 18: Return 1 edo ezer. JASON Hirschhorn: itzuli 1. OK? Handia. Bi fitxategiak irekitzen. Nork lagundu ahal dit bi fitxategiak irekitzen? Nork ez du eman dit kodea oraindik? Kurt? KURT: Orduan txapelak guztiak F-I-L-E izar iturri. JASON Hirschhorn: noa hartu bokalak. Horiek cool dira. Tumblr da bezalakoa da. STUDENT 18: berdin fopen - JASON Hirschhorn: berdin fopen? STUDENT 18: Open paren, argv, parentesi irekiak. JASON Hirschhorn: Itxaron. Barkatu. Open paren. Ados. STUDENT 18: Bai. Argv sub 1. JASON Hirschhorn: Sub 1? STUDENT 18: Bai. Argv parentesi irekiak 1 - bai. Eta, ondoren, koma, eta orduan irekitako bikoitza aurrekontua, r, komatxo bikoitz, itxi paren, puntu eta koma. JASON Hirschhorn: Sweet. Eta zer bestea buruz? STUDENT 18: Oso antzekoak dira, baina, horren ordez S-R-C, egiten duzuna D-S-T deitu. JASON Hirschhorn: OO! Hori gustatzen zait. STUDENT 18: Just D-S-T. Bai. Eta gero argv, parentesia ireki, 2. Bai. Eta ondoren, w r ordez. Bai. JASON Hirschhorn: Great. Hurrengo lerro pare. Ere, inor gehitzeko gauzak badauka duten egin dugu lerro, sentitzen free gehigarri horiek, baita. Egiaztatu ziur ez da NULL egiteko. Nork eman ahal dit kodea behar dut pseudocode lerro hori asetzeko? Archer. ARCHER: src berdin berdin bada NULL edo DST berdin berdin NULL, orduan itzuliko dizu - JASON Hirschhorn: Zer? ARCHER: Return 2? JASON Hirschhorn: Return 2. Beraz paren src berdin bada berdinen NULL, edo - edozein dela thing's - pipa? Pipa? Izango da kanalizazio deitzen diogu. Pipa, pipa, d berdin berdin NULL, bueltatu 2. OK? Oraindik dugu byte daudelarik arte - urrats hau baino gehiago sort dugu saltatu pseudocode hemen joan den zatia. Baina ari gara byte daudelarik arte - zer soinu egiten duen bezala? Zer nolako C egitura - baina ez dut hitzaren egitura erabiltzea, erabiltzen hasteko ari garelako duten beste kasu batzuetan - baina C tresna soinu egiten duen bezala? STUDENT 19: begizta bat. JASON Hirschhorn: begizta bat. Begizta bat bezala soinuak. Beraz, nork lehen lerroan eman ahal dit hementxe begizta kodearen? Ere jaso ahal zer motatako begizta, nahi duzun me ematen bada kode-lerro hau. Hiru motakoak daude. Hautatzeko lortuko duzu. Horietako bat iradokitzen nuke. Avi. Bat, nahi duzu? AVI: FOR. JASON Hirschhorn: FOR. AVI: int i berdin zero. JASON Hirschhorn: Ados. AVI: zati honetan, ez nago ziur. Baina tamaina baino txikiagoa da i izar iturri? Ez nago horren ziur. JASON Hirschhorn: Ados. Nahi duzulako da: AVI tamaina, ezta? JASON Hirschhorn: Beraz, hau ziurrenik ez benetako tamaina ematen diguten bytetan fitxategia. Beraz, zer gehiago egin genezake? Zer da begizta beste mota bat? Edo behar makila FOR begizta egiten dugu? STUDENT 20: Ezin berriz, begizta bat egin nahi duzu? Eta gero, zer egiten duzun da you'd - char fitxategiaren * bat izan dugulako. Mantendu besterik ez dugu hala bada incrementing duten litzaidake NULL pertsonaia aurkitu arte da amaieran? Edo ez, hori ez da nola fitxategiak lan? JASON Hirschhorn: Beraz mantendu ahal izango dugu karakterra incrementing * NULL aurkitu arte - STUDENT 20: Funtsean mantendu egingo pertsonaia pertsonaia egilea dugu hit arte fitxategia amaieran. JASON Hirschhorn: Bai. Beraz, zer egin nahi dugun. Irakurketa, pertsonaia mantendu nahi dugu pertsonaia eginda, lortu arte behar dugu fitxategia amaieran. STUDENT 20: Bai. Aurkitu - Zer da amaieran edo stop seinale Testua fitxategi baten amaieran. JASON Hirschhorn: Ados. Beraz, noiz lortuko lerro amaierara iristen gara - nola ez dugu ezagutzen dut iritsi gara fitxategi baten bukaeran? Nuen deitzen naiz bada - beraz dezagun urratsa atzera. Zein da funtzio bat? Goazen lerro honetara en hementxe. Iturburu fitxategia irakurtzean. Nork eman ahal dit kode-lerro hori? STUDENT 21: fscanf? JASON Hirschhorn: fscanf. Ados. Zer irakurri nahi badut, oso zehazki, byte bat? STUDENT 21: Ez dakit. JASON Hirschhorn: Ados. Nahiz fscanf baino errazagoa - zer da bat - Iturburu-fitxategi bat irakurri nahi dut? Iturburu fitxategi batetik irakur. Zein da funtzio bat - bai. STUDENT 22: da fread? JASON Hirschhorn: fread. Uste dut dezagun makila batekin oraingoz inork duela. Nolako argudioen hartu du fread? STUDENT 22: Seguruenik, fitxategi mota, eta ondoren fitxategia kokaleku? JASON Hirschhorn: Zer egin daiteke hemen idazten dudanean irudikatu zer mota argumentuak fread hartzen? MULTIPLE IKASLEAK: Man fread. JASON Hirschhorn: Man fread eta fwrite. Itxura zintzilikatzeko zuten bezala elkarrekin. Beraz fread hartzen zenbat argumentuak? STUDENT 23: Lau. JASON Hirschhorn: It hartzen lau argumentu. Erakuslea, tamaina hartzen du, eta hori Gauza, hau da bitxi, eta fitxategi batzuk. OK? Dezagun irakurri hementxe horri buruz. "Funtzioa fread The n memb irakurtzen datu elementu, tamaina bakoitzeko byte luze, erreka batetik adierazi airetik, horiek gordetzeko kokapen honetan erakuslea eginez. " Beraz, lau argumentu. Zergatik ez kopiatu besterik ez dut hau, eta itsatsi hemen. Ados. Beraz, nork bete has daiteke niretzat argudio horiek? Avi. AVI: Hartu hutsunea. Jarri src besterik. Hartu erakuslea eta izarra. Jarri src. Gero - JASON Hirschhorn: Beraz, ez dut nahi utzi joateari Ba al duzu, hori okerra delako. Src batera Arrazoi duzu, baina non src joan behar? [AHOTS INTERPOSING] JASON Hirschhorn: It should joan hona. Duten src da - gure src mota bat da. Dezagun hemen. Hau da, mota FITXATEGIA * eskatuz, dugu egia esan ohi hauek ikusteko horrelako. Beraz, argudio bat da hau eskatuz fitxategi mota * korronte deitzen duten src da. OK? Zer gauza egin tamaina irakurri nahi dugu? Duzu eman dut honetan dagoen arazoaren azalpena. STUDENT 24: byte bat aldi berean. JASON Hirschhorn: byte One. Zein handia byte bat da? Bere tamaina bytetan da, beraz, zer daitezke bertan jarri dut? STUDENT 25: One. JASON Hirschhorn: One. Eskuinera. Bere tamaina unitatea bytea da, so 1 1 byte da. Zenbat denbora batean irakurri nahi dut. STUDENT 26: One? JASON Hirschhorn: Gauza bat. Tamainako gauza bat irakurri nahi dut 1, garai batean mokadu bat. Eta nora jarri dut, behin irakurri nuen? STUDENT 27: Helmuga? JASON Hirschhorn: Beraz, ezin dut jarri zuzen helmugara sartu da. STUDENT 28: zara botako jarri da hirugarren erakuslea sartu? STUDENT 27: helmugara. JASON Hirschhorn: Ados. Bai. STUDENT 29: zerbait aldarrikatu dezakezu Aldi baterako biltegiratze lehenago gisa jarduteko. JASON Hirschhorn: Ados. Eman zidan. STUDENT 29: irudiak Another erakuslea, agian? JASON Hirschhorn: Ados. Beraz, hau hutsunea izarra da - mota void izar bat da, beraz, ez du fitxategiaren erakuslea izan behar. Eta byte bat irakurtzen ari naiz, bada, non leku ona izango litzateke byte bat gordetzeko? STUDENT 29: Array bat? JASON Hirschhorn: Array bat. Ados. Eta zer gehiago, hori da zerbait da besterik tamaina byte bat? STUDENT 30: char * bat? STUDENT 29: Bai. JASON Hirschhorn: char A * ez da, byte bat. STUDENT 29: char bat. JASON Hirschhorn: char batek byte bat da. Ezta? Hargatik deitu buffer hau da generiko gauza horiek gordetzeko erabiltzen izendatzeko Zerbait aldi baterako. Beraz buffer bat sortuko dut. Ezta? Baina hartu du hutsune bat *. Beraz, agian arrazoi duzu, hori da tamaina 0 bufferra bat izan behar du. Beraz, bat gordeko du - eskubidea. Delako eskubide hori hemen - char buffer pertsonaia bat da, baina honetan hutsune bat hartzen du * - erakuslea. Beraz, hau egin izan dut eta orain buffer erakuslea da. Zer gehiago egin nezakeen? STUDENT 31: Jarri char hurrengo izar bat. JASON Hirschhorn: I Could char hura * sortu dute. Ados. Zer da beste gauza bat egin izan dut? Edo goazen beste honekin. Char * bufferra, beraz, zer ipini dut hemen? STUDENT 31: Buffer. JASON Hirschhorn: Buffer. Buffer char bat erakuslea da. Eta kokaleku horretan, jarriz Oraindik dugu zerbait irakurri dugu byte bat. Bai. Avi. AVI: galdera azkar bat Just. Ez buffer malloc nahi al duzu? JASON Hirschhorn: Who can galdera horri erantzuteko? STUDENT 32: Beno, ez du benetan ezer puntu oraintxe, beraz - JASON Hirschhorn: Baina egin da malloc nahi dugu? STUDENT 32: egin bazina duten , modu, uste dut bai, litzaidake behar delako leku batzuk seinalatu behar da. JASON Hirschhorn: Egin dugu da malloc behar? STUDENT 33: bazoaz izateko Begizta kanpo erabili. JASON Hirschhorn: Bagoaz izateko erabili ezazu Begizta kanpo? STUDENT 34: Bai. STUDENT 35: Itxaron. Ez deklaratzeko nahi dugu haratago begizta batean? JASON Hirschhorn: Beraz, asmatzen dut dugu Zenbait sasi berriz, begizta hemen gaudela irudikatu nahian, duten ez dugu behar oraindik ahaztuak. Ez dugu behar da malloc. Nagusian dugu jarduten ari, bakarra da joan begizta honen barruan erabili ahal izateko. Ez du behar den existitzen honetatik kanpo. Beraz, tokiko aldagai bat izan daiteke. Erakuslea izan duzu tokiko aldagai bat. STUDENT 36: Baina ez da ezer seinalatuz. JASON Hirschhorn: Ez, ez da ezer hasieratu. Baina ez gabiltza ere erabili behar. Zerbait jarri goaz du lehen aldiz erabiltzen dugu. Beraz, OK dirudi. Beraz, ez dugu malloc behar hemen. Eta uste dut ondo dago dagoen bezala. Ados. The fread lerroa dugu. Egin hurrengo lerroan utzi. Fitxategi bat idatzi nahi badugu, zer da funtzio on bat hori egin nahi duzula? STUDENT 37: fwrite? STUDENT 38: Fprintf? JASON Hirschhorn: Fprintf bat da. Zer da beste bat? STUDENT 39: fwrite. JASON Hirschhorn: fwrite. Eta gure helburuetarako, fwrite, hemen ikusi genuen, da ziurrenik hobea aukera. Lau argumentu hartzen du baita. Nishant, ezin emango dizu argudioak niri? Nishant: Lehena en going buffer besterik izan. JASON Hirschhorn: Ados. Nishant: Bigarren norberaren 1 besterik ez da izango. Bata hirugarren Honez 1 izango da. Eta laugarren bat da DST izango. JASON Hirschhorn: Ba al da inor izan Ildo horri buruzko edozein galdera? Duten itxura ona. Ados. Beraz, gaur egun itxura gauza gara bat bezala falta - benetan, en idazten utzi azken lerro hau. Itxi fitxategiak. Nork digu amaitzeko dezake idatziz Azken bi lerro hauek? Bai. Barkatu, zer da zure izena? LUCY: Lucy. JASON Hirschhorn: Lucy. LUCY: fclose src eta gero fclose helmuga. JASON Hirschhorn: fclose, paren, src, itxi paren, puntu eta koma. Eta fclose - bai? LUCY: Open parentesi, d eta, ondoren, puntu eta koma. JASON Hirschhorn: Great. Eta zer behar du, besteak amaieran dut? LUCY: Return 0. JASON Hirschhorn: Return 0. Ez izan dut? Just galdera bat. Ez bueltan 0 sartu behar dugu? MULTIPLE IKASLEAK: N º JASON Hirschhorn: N º Nagusia automatikoki egiten du lortu baduzu amaieran. Baina uste dut polita da include da esplizituki. Batez ere, beste itzultzen ari gara programan zehar gauzak. Ados. Hau da, zer falta ari gara - Zer bitartean? Nor zenbait pentsa dezakezu - zentzu batzuk ditu zer gauza urtean han joan daiteke? Da bakarrik pseudocode batzuetan, nahiz hizkuntza bezala? Zeintzuk dira benetan dugu - zer egin arte joan nahi dugu? Bai, Lucy. LUCY: fitxategi amaiera. JASON Hirschhorn: fitxategi amaiera. Beraz, zer esan nahi fitxategi amaiera by duzu? LUCY: iristeko lerro amaierara, gelditu. JASON Hirschhorn: Ados. Beraz, behin lerro amaierara iritsiko gara. Nola nik iritsi gara badakigu fitxategiaren amaieran? STUDENT 40: buffer uste dut be NULL izango da. STUDENT 41: Buffer deklaratu da begizta barruan. JASON Hirschhorn: Beraz, uste duzu buffer be NULL izango da. Zergatik bufferrerako litzateke ezar NULL? STUDENT 40: noiz duzulako fread, jarri saiatzen zaren ezer ez buffer sartu. JASON Hirschhorn: Ados. Beraz fread pentsatzen ari zaren - denean Nik bukaerara iritsi gara fitxategia, zer da fread egin? Nire ustez galdera da irudikatu behar dugu. Zer egiten du fread? Duela NULL jarri buffer, edo du beste zerbait egin du? Nola daiteke irudikatu dugu zer egiten du? STUDENT 42: Man. JASON Hirschhorn: Man. Hargatik begiratu hemen baino gehiago. Balio hori itzuli. Arrakasta, fread on eta fwrite itzultzeko irakurri edo idatzi elementu kopurua. Zenbaki hau byte kopurua berdinak transferitu denean bakarrik tamaina 1 da. Errore bat gertatzen bada, edo amaiera fitxategia da iritsi, bueltan balioa da Elementu Aldaketa labur edo 0. Beraz, gure helburuetarako, bada fread iristen fitxategia amaieran, eta bertatik irakurtzen fitxategia amaieran, ez dago ezer utzi irakurri, zer, itzuli egingo da? STUDENT 43: Zero? JASON Hirschhorn: Zer? STUDENT 43: Zero? JASON Hirschhorn: Zero. Honez zero itzuli egingo da. Beraz fread duten, noiz dugu ezagutzen dugun lerro amaierara iritsi, va zero itzultzeko. Nola daiteke hori erabili dugu gure abantaila? AVI: aldagai bat kanpo deklara ditzakezu txeke izeneko begizta. Txeke berdinen bada - oraingoz - bat. JASON Hirschhorn: Ados. AVI: Eta gero, IF bat jarri ahal izango duzu eskubidea fread esaten ondoren adierazpena bada fread berdin zero - no. JASON Hirschhorn: Nor Avi lagun dezake? AVI: Zer da balioa fread itzulitako? JASON Hirschhorn: dugu besterik duten aurreratu zaio. AVI: Nola ordezkatzen duzu? JASON Hirschhorn: Beraz itzultzen du - dezagun begiratu hemen - a itzultzen du size_t, hau da, funtsean zenbaki oso bat. Beraz, zenbaki oso bat itzultzen du. Eta gure kasuan, izango da itzultzeko edo 1 eta 0 - 1 Gauza bat irakurri bada - byte bat, eta 0 dugu amaierara heltzen bada. Beraz fread bada - bai? STUDENT 45: Ezin da besterik gabe jarri duzu osoa fread (buffer, 1, 1, src) sartu begizta bitartean? JASON Hirschhorn: Beraz, proposatzen duzun han sartu lan hau egiteko? [AHOTS INTERPOSING] JASON Hirschhorn: Hold on. Beraz, hori dugu ridding ari. Beraz jarriz proposatzen ari zarela fread bertan sartu? Halaber, zer mugitu behar dugun hori egin nahi izanez gero? STUDENT 45: kanpoko bufferra. JASON Hirschhorn: dugu egin beharko lukete ere hau lekuz kanpo hemen. STUDENT 45: Baina ez hori etengabe mugitu aurrerantz? [AHOTS INTERPOSING] JASON Hirschhorn: Ados. Beraz, hau da Okshar zer proposatu. Gure bufferra sortu dugu. Dugun bitartean fread, ondoren fwrite dugu. Honetako pentsamenduak? STUDENT 46: Nire galdera bakarra da, litzateke benetan exekutatu komando fread du? JASON Hirschhorn: Great galdera. Noiz funtzioa dei bat ari zara jartzen egoera baten barruan, ez dela funtzio deia exekutatu? Ikusi dugu horren adibide aurretik. Ezta? STUDENT 46: Ados. Bai. Beraz exekutatu egiten du. JASON Hirschhorn: gauzak ikusi dugu hori baino lehen, non dugu atsegin bat funtzio deia egoera baten barruan. Funtzioa dei hori exekutatu du? Bai. Beraz, erantzuna baiezkoa da. Funtzio deia hau exekutatuko da. Baina, berriro ere, ez da guk nahi duguna? Zer da irudikatu izan dugu, modu batean da zer nahi dugu bada? MULTIPLE IKASLEAK: Run it? JASON Hirschhorn: exekutatu genezake. Baina hori egin baino lehen, ezin izan dugu honen bidez ere arrazoia. Bada - esan byte bat behar dugu gure fitxategia, hemen lortu dugu, kode hori lortu dugu. Hau exekutatu. fread byte bat itzuliko da eta gordetzeko buffer batean. Eta hau 1 den ebaluatuko du, eskubidea, 1 ematen zuen ondoren. Beraz, berriz, 1. Duten kodearen barrutik esan nahi du WHILE begizta egingo exekutatu? STUDENT 47: Bai. Egia da. JASON Hirschhorn: Bai. 1 Egia da. Ez da 0. Beraz, hemen barruan kodearen exekutatuko da. Beraz, idatzi egingo dugu. Mugituko dugu atzera honetara lerroa berriro ere. Orain dugu - Oraindik gure fitxategia amaieran dugu. Irakurri gure fitxategi amaiera from dugu, byte bakarra dugu izan delako bertan. Fread itzultzen 0, dendetan buffer zerbait. Ez, egia esanda ez dakit zer gordetzen bufferrean da. Ziurrenik izan dugu begiratu zer egiten duen ikusteko. Duten I zintzotasunez ez dakit. Ez dakigu, nor zaintzen zer gordeko du buffer batean? Baina itzuli du 0. Eta bitartean egingo 0 exekutatu? WHILE 0 izango da exekutatu. Beraz, ondoren, aurrera egingo dugu behera hemen. Hargatik esku hutsezko lortuko honetan bada kodea exekutatu behar dugu, edo dugu bada aldaketak egin beharko. Baietz uste baduzu - bozkatzeko aukera izango duzu. Kode hau abiarazi behar dugu uste baduzu Honela, mesedez goratzeko zure esku. Ados. Ez dago bat - do bat galdera, kezka izan duzu? Bai. STUDENT 48: buffer mugitzen dugu ondoren Begizta kanpo, egiten dugun da malloc behar? JASON Hirschhorn: Great galdera. Kanpo bufferrerako mugitzen dugu ondoren begizta, ez da malloc egin behar dugu? Honen esparrua galdera bat da. Bufferrerako kanpo abiarazi badugu begizta hau, izango da existitzen Begizta barruan? MULTIPLE IKASLEAK: Bai. JASON Hirschhorn: Bai. Bere esparrua Begizta barruan hartzen ditu, eta, benetan, ezer behean, barruan Kode hori, barne Hemen barrutik gauzak. Beraz, ez dugu behar da malloc. Tokiko aldagai bat da, eta bere esparrua Oraindik ere begizta barne. STUDENT 49: Ez da askatu behar dugu? JASON Hirschhorn: Egin dugu free buffer behar? STUDENT 49: Bai, ez dugu malloc bada. JASON Hirschhorn: Egin dugu free buffer behar? Ez dugu. Berriz ere, tokiko aldagai bat da, beraz, ez dugu behar da libratzeko. Ados. Ikusi dezagun zer gertatzen den. Beraz uninitialized da. Horixe baitzen zerbait Marcus proposatutako lehenago. Beraz, akats hori, aldagai bufferrean dugu uninitialized dago hemen erabiltzen denean. Nola egin dezaket hau konpondu dugu? STUDENT 50: malloc da? STUDENT 51: berdin NULL? STUDENT 52: Say buffer berdinen NULL. JASON Hirschhorn: Ados. Itxura ona. Gaur egun ezagutzen dugun moduan. Dezagun zerbait kopiatzea saiatzeko sortu. Beraz, gure testu fitxategi dugu. Nola lor dezaket programa hau exekutatu dugu? Bai. STUDENT 53: dot egin dezakezu slash cp, test.txt. Eta gero, beste fitxategi bat izendatzeko dezakezu zein izango da sartu gorde. JASON Hirschhorn: Ados. Izango da out.txt deitzen diogu. Cool? Seg errua. Seg matxura pentsamenduak? Hau handia da. Nola jakin dugu non seg errua da? Zer? STUDENT 54: gdb. JASON Hirschhorn: gdb. Gdb exekutatu dugu idazten gdb dot barra eginda, Gure programaren izena. Ez komando lerroko argumentuak bertan. Ezarri goaz Nagusian etendura-puntua. Gdb hasi nahi badut, zer egin dezaket? STUDENT 55: R. JASON Hirschhorn: R. Eta gero, zer? STUDENT 55: argumentuak? JASON Hirschhorn: Gero, komando lerroko argumentuak. Goazen bidez. N besterik ez da niretzat line hartu lerroz. Joan noa arte Nire errua seg lortu dut. Ez dago nire seg errua. Fread eragindako antza du nire errua seg. Badakit fread eragindako nire errua seg, hori izan delako lerroa exekutatu besterik ez dugu. Eta hori izan zen gauza bakarra lerro hori gertatzen - bi gauza gertatzen ari ziren. Fread zen, joan eta, ondoren, izan dugu WHILE egiaztapena batzuk egiten. Apustua prest nago duten bitartean egiaztapena ez zen nire errua seg eragiten. Seguruenik, fread zen nire errua seg eragiten. Ere zerbait hemen, memcopy ikusten dut. Memoriaren kopia. Soinuak memoria mugitzea bezalakoa beste kokapen bat. Soinuak gertatuko litzateke antzeko zerbait fread batean, agian memoria batzuk hemendik hona mugitzen. Dezagun berriro joan honen bidez. Nola ez, hasten naiz haren gainean eta berriro exekutatu? Bai. STUDENT 56: Ez da jarri behar duzuna buffer lehenago ampersand bat? JASON Hirschhorn: Beraz, aurretik ampersand buffer luke me-helbidea buffer, zein char bat da *. Dezagun exekutatu one more time honen bidez. Nola ez exekutatu bidez dut denbora gehiago? STUDENT 57: Can you just idatzi exekutatu berriro? JASON Hirschhorn: run Idatzi berriro. Beraz, ez da joan lerro hori exekutatu. Beraz bufferrean NULL erakuslea da. Zuzentzeko? Seinalatuz da - ikus dezagun. Dugu bada gure - honen irudi azkar bat marraztu. Daiteke denek ikusten baduzu Baino gehiago idazten dut hemen? Beraz, pila, lokal bat dugu aldagai eta zer Buffer deitzen da, eta char baten erakuslea da. Zer da char helbide honetan? STUDENT 58: 0x0. JASON Hirschhorn: Eskuin. Hori da hori zer den. Hemen, buffer barruan, gordetzen den 0x0. Hori da, zer dugu - da konfigurazioa oraintxe dugu. Beraz, lerro hau, fread, zerbait jartzen iturritik non? Kutxa hau edo kutxa horretan? Zein kutxa? Utzi kutxa edo eskuineko kutxa? Eskuineko lauki hau. Erakuslea da honako hau, eta jartzen du hemen ere. Noiz saiatzen gara eta ukipen memoria at kokapena 0, zer gara? Segmentaziuo hutsegitea. Duten error oraintxe behar dugu. Bai. STUDENT 59: Ez duzu izar buffer jartzea? Ala ez? Fread for? JASON Hirschhorn: Beraz fread erakuslea hartzen. Beraz pasatzen bufferrean da. Eta orduan izango da de-erreferentzia da fread barruan nonbait. Baina, berriro ere, ikusi genuen, erakuslea hartzen du. Ez dugu behar pasatzeko izar buffer. Hori pasatzen litzateke edozein dela ere, hemen. Eta hori seguruenik emango digu errore bat ari gara de-erreferentzia delako. Ezta? Noiz de-erreferentzia dugu hau erakuslea, noiz kokaleku honetan sartzeko saiatzen gara, Ari errore bat lortzean dugu - gure segmentaziuo hutsegitea. Beraz - trabatzen. Gdb irten irten goaz. Gure line - gure arazoa - ez da eskubidea hemen lerro hau. Eta arazo bat delako Lerro honen. Nola kutxa bat sor dezakegu da eskuragarria fread ere. Ezta? Hori da bat kutxa bat sortu behar dugu byte handiak, char baten tamaina. Baina kutxa hori eskura egon behar dugu Funtzio hau exekutatzen denean. Beraz, non - bai. Ideia bat? STUDENT 60: Just ezarri bezala ausazko edozein pertsonaia. Just do char buffer berdinen karakterea. Eta gero, buffer dituzula han - JASON Hirschhorn: Itxaron. Char buffer? Beraz izar no? STUDENT 60: Bai. Atera izarra. Ausazko karaktere bat izango dira. JASON Hirschhorn: Ados. Beraz, eman zidan bat. STUDENT 60: Like a edo zerbait. Eta orduan, buffer duzu Han, bat erabiltzea gomendatzen - STUDENT 61: Star? Oh ez, ampersand. STUDENT 60: Erabili ampersand. JASON Hirschhorn: Ados. Eta zer fwrite buruz? STUDENT 60: Erabili ampersand berriro. JASON Hirschhorn: Guztiak eskubidea. Beraz, zure ideia da, char bat sortzen dugu, eta zerbait jarri, eta gero char duten idatzi. STUDENT 60: Bai. JASON Hirschhorn: Zer Zure ustez jendeak? STUDENT 62: Honez bilbatzen. JASON Hirschhorn: Ados. Dezagun marrazteko. Une honetan, beraz, ez dut hau marrazteko joan pila hemen gorria, eta egin dugu izango dute - ooh! Barkatu. Une honetan, beraz, zerbait behar dugu bufferrerako, eta da pilan. Zuzentzeko? Eta horrekin batean ari gara aurrezteko, hasiera batean. Ondoren, gure fread deia dugu. Zer fread du byte bat da hartzen bertatik gure fitxategia eta jartzen du nonbait. Jartzen dena delakoa mantentzen da Gauza da seinalatuz. Beno, helbide honetan izan genuen aurretik - 0x0. Orain zer helbide dugu? STUDENT 63: Whatever Helbide buffer da. JASON Hirschhorn: Whatever Helbide buffer da. Ziurrenik izango da horrelako zerbait. Ziurrenik eta b batekin hasi joan f bat, eta, ondoren, beste sei digituak hamaseitarra. Ez du axola. Helbide batzuk. Eta helbide hori pasatzen ari gara sartu Eta ari gara gure bat jarri nahi dut byte helbide hartan gauza. Beraz, gure bat jarri nahi dut byte gauza hemen barruan. Eta gero ari gara etara idazten joan Zer da inoiz barruan hemen. Du inor edozein zalantza horri buruz? Duten pentsatzen kode hau lan egingo du? Goratu zure eskua uste baduzu kode hau lan egingo du. Jarrera bat hartu behar duzu. Eta pentsatzen kodea ez du funtzionatzen? Goratu zure eskua. Besteek izan behar du bere eskua altxatuz. Ados. Michael, non ari zaren zutik? PATXI: ahal dut ez erabakitzeko. Nolako erdian. JASON Hirschhorn: zara erdian. Hartu bat. PATXI: fedea dut eta esan lan egingo du. JASON Hirschhorn: Ados. Fedea izan dituzu eta esan du lan? Zer gertatu da? [AHOTS INTERPOSING] JASON Hirschhorn: Ez seg errua. Nola ikusi ahal egiaztatu dugu bada bi gauza berdinak direla? Bi fitxategi berdinak dira. STUDENT 64: desberdintasunak. JASON Hirschhorn: desberdintasunak. Arteko desberdintasunak ere ezb. txekeak itzultzen bi fitxategiak, eta bada ezer ez, berdin-berdina ari dira. Eta ireki badugu, gure fitxategia lortuko dugu. Beraz, irtenbide zuzena zen. Dezagun atzera it at one more time. Benetan egin ez dugu, nahiz abiarazi behar. Seguruenik pixka bat begiratu litzateke garbiagoa ez baduzu jarri zerbait ausazko hor. Puntua izanik, sor, behar duzu espazio batzuk zerbait gordetzeko etik fread eta zerbait hartu fwrite daudelarik. Eta gauza hori bai lokal bat izan behar izan zuen aldagai pila - duzu espazio batzuk malloc'd Nik liteke. Beraz, benetan ezin dugu malloc idatzita hemen, eta horretan aritu zen. Eta gero, ez dugu gordetzeko zuketen gure gauzak nonbait zeure gainean. Baina hori da, benetan, seguruenik, dotoreena konponbidea. Just espazioa pila batzuk sortu gauza horiek joan. Beste bi iruzkinak nuke. Txanda hartu honetan, eta bazina orduan ezagutu honetako puntuatu, nire iruzkinak honako hau izango litzateke. 1 hauek hemen, niri, begiratu zenbakiak magia bezala. Honetako 1, fread dagokionez, zentzurik. Duten gauza kopurua da irakurri edo idazteko. Baina hau hementxe egin beharko lukete ziurrenik beste zerbait izan. Beraz, zer irtenbide bat da? STUDENT 65: byte neurria. JASON Hirschhorn: duten bezala? STUDENT 65: char neurria. JASON Hirschhorn: char neurria. Bai, byte ez da mota bat. Beraz char lanen tamaina. , Izan dugu goialdean gure kodea, # definitzen duten. Zerbait izeneko byte eta benetan da karaktererik gabe. Egia esan, bat hurbilketa are hobeto hau izan liteke - uint. Inor ezagutzen zer den? Barkatu. Dut atzeraka izan da. Itxaron, ez. Zein modu ez, joan? Inor ezagutzen zer den? Bai. STUDENT 67: Ustezko normalizatzeko laguntzeko sistemak gauzak topatu duten izan - unsigned osokoak bezala duten 8 byte izan? JASON Hirschhorn: Hori zehazki eskubidea. Makinak desberdinetan, char baten tamaina - ez ohi karaktererik gabe. Karakteretan byte bat izan ohi dira. Baina beste datu-mota tamaina dira 32-bit makina bat neurri ezberdinetako 64-bit makina bat versus. Uint8_t bat da beti, 8 bit - Beti byte bat. Eta besteak beste, behar dut int goiburu estandarra fitxategiak. Beraz, gaur egun, hau ziurrenik izan litzateke Kode hau idazteko modurik onena. Beraz, zenbakien magia kentzeko I. Eta, gainera, gehiago logikoa daukat bufferrerako idatzi. Ez da besterik gabe char bat, byte bat da, hau da, izango da zer espero dugu. Eta hemen, egia esan dugu apur bat sendoagoak dira. Ez gabiltza da char bat deituz, eta horrek - agian, nork daki - desberdina izan liteke tamaina makinak desberdinetan. Benetan ari gara esaten, hau da, zehazki byte bat, beti, ez du axola zer. Eta hemen begiratzen badugu, cp egin dugu. Uh-oh. Zer gertatu da? STUDENT 68: It piztuta egon liteke. JASON Hirschhorn: Zer? STUDENT 69: Da? STUDENT 70: ez duzu definitzen da mota baten ondorioz. STUDENT 71: Baina izan behar lukeen beharreko arauan definitutako. STUDENT 72: Zer gertatzen da? STUDENT 73: definitu behar luke txapelak guztiak izango ote da? JASON Hirschhorn: Beraz, ez da # define. Egia esan, kasu honetan, naiz typedef erabili behar. Dugu erabiltzen ari delako kokapen bat mota bat. Beraz, kasu honetan, benetan nahi dugu typedef mota berri bat inprimatzeko dugun bezala ari byte, eta horixe da, funtsean, honetan. Pixka bat desberdina # define baino da. Eta orain, gure kodea primeran funtzionatzen. Beraz, berriro ere, # define zerbait hartzen du, edonon ordezkatzen du beste gauza batera. Da makro bat besterik ez - azkarra zenbakiak magia kentzeko. Baina kasu honetan, Oraindik dugulako bertan mota gisa erabiliz - hementxe - Ordena horretako lan batean, behar dugu edozein dela byte da typedef izateko. Eta ari da definitzeko dugu hemen. Ez da, eta egitura bat, benetan da zeinurik gabeko osoko zenbaki bat besterik ez. Da byte bat luze. Kode hau egongo da eskuragarri online, eta duzun guztia oraintxe izan behar du. Beraz, izan dugu - perfektua - 13 minutu geratzen joan gorako Arazo multzo 5. Elkarrekin copy.c ibiltzeko nahi dut, eta gero hitz egingo dugu labur-labur beste atalak arazoaren ezarri. Hargatik tira copy.c. me Eta cool gauza hori, egia esan dugu Dagoeneko kode hau asko idatzita. Kodearen literalki idatzi dugu besterik hemendik etorri zenean izan nintzen hau idazten nire kabuz. Baina hau copy.c da, oinarria osatzen lehen bi zatiak egiteko whodunit.c ezarri arazoa eta horrek idatzi behar duzu, eta resize.c. Recover.c, zein hirugarren eta azken da arazo multzo baten zati, ez da Artxibo hau off oinarritutako. Fitxategi hori idatzi behar joan zaren, duzun txantiloi bat ematen dugu fitxategia, baina ezer ez du ra copy.c. zerikusirik Baina copy.c oinarria da delako Lehenengo bi zatiak, goazen hortik pasatu orain, beraz duzu zer egiten zentzu ona. Eta iruzkinak batzuk eman hemen. Jadanik idatzia dugu hau batzuk. Lehenik eta behin, ziurtatu egiten ari gara hiru argumentu lortuko dugu. Ondoren, fitxategi izena gogoratzeko ari gara. Beraz, urrats hau saltatu dugunean gure gauza kodetu dugu - gure cp. Baina, hemen, egiten ari dira pixka bat garbiagoa. Oraindik ziur egiaztatzen dute bi fitxategiak onak dira, in irekitzeko gain. Idatzi dugu kode hau guztia oraintxe, beraz, naiz ez den kode hau dwell egingo. Hurrengo gauza batzuk hori jakin , erabiltzen ari gara fitxategi mota horren bitmap fitxategiak dira. Bitmap fitxategiak metadatu batzuk izan haiekin lotutako. Beraz byte lehen bikotea esango dizu fitxategia buruz. Ez dira koloreak irudi horretan pixel. Esango dute fitxategiari buruzko. Eta irakurri baduzu arazo multzo bidez, informazio askoz gehiago izango duzu zer motatako metadatuak egituren gaineko dira bitmap barne. Baina horregatik lehen hau dugu multzoa - Kode hau hemen. Metadatuak irakurtzen ari gara - bi metadatu pieza - fitxategian goiburua eta info goiburua. Eta horren zati batzuk egiaztatzen ari gara ziurtatu egia bitmap fitxategia da jarraitu aurretik. Eta berriro ere, horien xehetasunak gara behar ez sartu orain joan. Irakurri nahi izanez gero, arazo multzo bidez, horiek ulertu ahal izango duzu. Long Narrazio laburren, horiek besterik ez, esaten ari honek bitmap fitxategi bat da, eta dela baieztatuz. Hurrengoa, ari direnek idazten dugu daudelarik fitxategira. Duten ikusiko dugu hemen. Ari gara out erakuslea idatziz. Hurrengoa, betegarria zehazten ari gara. Beraz, berriro ere, ekin berezitasuna da gisa bitmap fitxategi batean, lerro batzuk amaieran betegarria. Eta irakurri baduzu arazo multzo bidez, betegarria buruz gehiago jakin nahi duzu. Hau formula betegarria aurkituko da. Garrantzitsua gogoratzeko - denean bitmap baten tamaina aldatzeko aukera ematen dizu fitxategia, betegarria aldaketak. Noiz baten tamaina aldatzeko aukera ematen dizu fitxategia, betegarria aldaketak. Orain inoiz izango da 3 baino handiagoa - 0 izango da 3 bitartez, biak barne. Baina tamaina aldatu duzun zerbait, betegarria aldaketak. Pixel bakarra daukat ilara horretan bada, I hiru betegarria byte behar, zeren Errenkada bakoitzak lau multiploak izan bytes luze bitmap fitxategi batean. Baina bikoiztu badut, nahi pixel batetik joan bi pixel arte, eta horietako bakoitzak, demagun, byte bat da, ondoren behar dut egiteko bi betegarria byte duten lau berdina. Beraz, zerbait tamaina aldatu dut, Zenbatekoa aldatu behar dut betegarria daukat. Ez duela zentzurik guztiontzat? Ondoren, ilara bakoitzean zehar batetik bestera joateko, edo errenkadak guztietan zehar. Eta, ondoren, batetik bestera joateko zeharkatzen dugun ilara bakoitzeko zutabe bakoitzean. Ari garen bezalako bitmap hau tratatzeko sareta, bezala tratatu dugu 15 taula. Bezalako adreilu tratatu dugunean Horietako inprimatutako dugu pantailan. Errenkada eta zutabe sareta bat. Ondoren - hau ikusi genuen. Benetan besterik kodetu dugu hau. Aldi baterako biltegiratze batzuk sortu genuen. Irakurri hor dugu, eta, ondoren, idatziko dugu. Hau da, zehazki zer egin besterik ez dugu. Esan dudan hurrengoa, zeren lerro bakoitzean betegarria batzuetan bueltarik, dugu betegarria duten baino gehiago saltatzeko - zahar betegarria. Eta, ondoren, gehitu dugu atzera. Kasu honetan, sortzen ari gara fitxategi berean zehatza. Besterik ez da kopiatzea ari gara. Beraz, lerro hau motatako silly da. We Could literalki besterik betegarria jarri sartu Baina fitxategi tamaina aldatuz gero, Oraindik lerro hau nahi al duzu? Fitxategi baten tamaina aldatzeko, beraz badugu, Oraindik joateko nahi dugu zahar betegarria gainean? STUDENT 74: Bai. JASON Hirschhorn: Beraz, egiten dugu. Hau, berriz ere, jorratzen duelako Iturburu fitxategi batera. Ez dugu betegarria buruzko zaintzeko iturburu-fitxategi batetik. Hurrengo lerroan joan nahi dugu. Baina ez besterik gabe atzera jarri dugu betegarria zenbatekoa zaharrean. Berriro jarri beharko dugu betegarria kopuru berria. Beraz, baten tamaina aldatzen ari gara fitxategia, oraindik ere gainetik saltatu nahi dugu fitxategia zaharrean betegarria - zer irakurtzen ari gara aurrera. Baina zer ari gara idazten, goazen bizkarrean jarri desberdin batzuk behar izateko betegarria zenbaki hori zehaztuko dugu. Bai. STUDENT 75: bi horiek ordena lerroak ez du axola, ezta? Manipulazioa zauden delako desberdinak fitxategiak. JASON Hirschhorn: Zehazki. Bi lerro hauek ordena ez du axola. Lerro hau idatzi dugu. Hau da, hemen fitxategiaren dugu idatziz. Hori garrantzitsua da, beraz, lortu dugu eskubidea betegarria zenbatekoa. Horri modu fitxategia aurre. Eskubidea salto egin nahi dugu betegarria gainean. Ez dugu nahi, irakurtzen - dugu byte bat irakurriz denbora batean bada ari, gara ez betegarria byte horiek zaintzeko. Hurrengo lerroan mugitu nahi dugu. Azkenik Lucy guretzat eman besterik ez bezalakoa, fitxategiak itxi dugu eta itzultzeko 0. Beraz, hau da copy.c. Eta benetan idatzi dugu - gehien gastatu dugu Atal honetan idazten, funtsean. Hau egin duzu. Beraz, espero zentzu ona duzu zer gertatzen da hemen ere. Aldea handia, egia esanda, besterik ez da duten jorratzen lehen zati honetan bitmap fitxategiak berezitasunak. Beraz, nire hurrengo diapositiba gisa daukat, zer egin behar dugu? Beno, dezagun uste whodunit buruz. Eta norbaiti nork irakurriko bidez arazoa ezartzeko, zer egiten dugu ra whodunit egin behar? Besterik gabe. Aleja. Aleja: Ezin hartu duzu zatia duten gorria denotatzen pixel bakoitzaren. Eta gero - motatako? JASON Hirschhorn: Ados. Beraz atera bakoitzaren zatia pixel duten gorria esan nahi du. Duten gertu, baina ez da guztia da. STUDENT 76: Beno, ez da modu ezberdinetan egin behar den. JASON Hirschhorn: Ados. Eman dit modu batean. STUDENT 76: Hartu gorri guztiak, eta ondoren, azpimarratu du, urdin eta berdea. JASON Hirschhorn: Ados. Beraz eman modu bi horiek - pixel bat eman genuen bezala soinuak, hura maila gorria, urdina eta berdea dauka. Maila erlatiboa aldatu nahi dugu gorria, urdina eta berdea, arabera pixel horretan. Non kode hau aldatu beharko dugu erlatiboa gorria, urdina eta berdea pixel bat eman maila. Ondoren dugu irakurri - idatziko dugu aurretik? Emaidazu lerro kopuruari. MULTIPLE IKASLEAK: 83. JASON Hirschhorn: 83. Beraz hemen. Whodunit baterako, kodea behar duzu idazketa guztiak joan behar du bertan. Eta hori kode bakarra idatzi behar duzu. , Zeren entzun dugun bezala, guztia egin behar duzu egin da urdin erlatiboa horiek aldatzeko, pixel bakoitzetik maila gorria eta berdea. Nik irakurri duzu, eta orain Oraindik idazteko irten. Nola lortuko ditut - gauza hau izan badut hirukoitza deitu, hementxe, eta ez da dagoen RGBTRIPLE idatzi - ondo, begiratu dugu bmp.h bada, zer da RGBTRIPLE? STUDENT 77: struct bat da. JASON Hirschhorn: RGBTRIPLE egitura bat da. Eskuineko behera hemen duten ikusiko dugu. Eta, beraz, nahiko banu sartzeko, adibidez, struct maila gorria, nola egin nuen egitura honen maila gorria sartzeko? [CLASS MURMURS] STUDENT 78: RGBTRIPLE.rgbtred? JASON Hirschhorn: Dela zuzena? STUDENT 79: hirukoitza izan behar du dot, ordez RGBTRIPLE dot of? JASON Hirschhorn: Triple. Triple tokiko aldakorra da, beraz, Hemen, ez da erakusleak ez hemen. Beraz, erabili besterik ez dugu dot idazkera. Hau emango zidan gorri-maila. Aldatu nahi badut, ezarri dut besterik berdinak zerbait desberdina da. Beraz, berriro ere, kode-lerro honetan sartzen aldagai hau eta egitura horren barruan, eta ezarri ahal izango dugu zerbait berria egiteko. Beraz whodunit egiteko, berriro ere, hau da, funtsean, zer egin behar dugu. Oso erraza da. Just maila erlatiboa batzuk aldatu, eta hau da, non kodea duten doa. Resize, beste alde batetik, eta pixka bat trickier. Izan ere, resize da seguruenik Arazo honen zati trickiest ezarri. Hiru minutu da gehiago joan behar dugu. Baina, berriro ere, dagoeneko idatzita dugu Kode hori, jabetzaren beraz dugu nahiko ezaguna izan behar du. Zer dira gauza batzuk egin nahi dugun resize, zuk irakurri baino gehiago baldin baduzu izan Arazo multzo? Horiek eman behar baduzu me, dugu haiei buruz hitz egin daiteke. Zer dira gauza batzuk egin nahi dugu? STUDENT 80: Bertikalki - beraz, horizontalki tamainaz aldatu nahi baduzu, baina bertikalki tamainaz aldatu da, bai? JASON Hirschhorn: Beraz, ari gara ematen bada bat pixel, eta tamaina egokitzeko batek nahi dugu bi faktore, orain behar du izan horizontalki tamainaz aldatu eta tamaina aldatu bertikalean. Ez duela zentzurik? Bai. Beraz, hori da, ziur aski, erronka handiena. Eta egingo duten buruz hitz egiten dugu seg batean. Bai. STUDENT 81: Horrela pentsatu nuen zen inprimatu ezazu beharrezko duzu - JASON Hirschhorn: Itxaron. Ez kontatuko digute zer egin duzu. Logika batean hitz egingo dugu. STUDENT 81: Ados. Zein zen galdera? JASON Hirschhorn: besterik ez duzu eskua altxatu. Ez zen galdera ez. Let it aurkeztera me. Dezagun laburki hau eztabaidatu besterik ez niri. Beraz, ez dugu pixel bat, nahi dugu erreplika da, bai horizontalki eta bertikalean. Beraz, haien hemen zer egiten dugun da, dugu gure pixel irakurri, idatzi dugu ordea aldiz asko. Baina orduan gure trikimailu dugu hemen, zeren gero hemen joateko nahi dugu hurrengo lerroan eta idatzi zuen hurrengo lerro hasieran. Beraz, bai errepikatzeko nahi badugu horizontalki eta bertikalki, zer da modu batean ona ez da egin behar - Alde ona, nahiz eta hori egin ahal izateko? Beraz, ez dugu behar etengabe bilatzeko gure fitxategia entrenatzaileak gauzak kokatzeko. Galdera hori agian ez dute egin zentzua, baina uste dut bat bertara erantzungo die lagunduko. STUDENT 82: Sortu array bat? JASON Hirschhorn: Hargatik uste fitxategi bakoitzaren errenkadan gisa. Dezagun uste ilaratan terminoetan en. Gure lehenengo errenkadan dugu gure txiki batetik bada Irudian, ilara horretan egin ahal izango dugu argazki handi bat ilara handi batean, eta gero errepikatzeko errenkada horretan ordea erreplikatu behar da hainbat aldiz, baizik eta joan pixel pixel baino, horietatik lortzen nahasgarria denean fitxategiak aurre. Bagenu delako - Espazioa dut dut lasterketak. Hau gure fitxategia bada, eta guk behar duen pixel bat dago, eta bertan jarri nahi dugu bertan, oraindik gauza batzuk ditugu han Oraindik dugu joan beharra duten idatziz eta gure fitxategi berria sortzeko - Gure fitxategi hori birritan bezain handia da. Baina benetan zaila da fitxategia funtzioak ditu inguruan albo batera utzi lerro berrietara duten bezala, eta gero atzera jo hemen eta gauzak jarri hor. Ia ezinezkoa da zerbait egin duten bezala, zentzua badu. Baietz uste dugu errenkadak dagokionez, bada, ezin dugu gure ilara hartu, eta gero jarri - errepikatzeko errenkadak bertikalean. Eta hori, nola aurre egin tamaina aldatzea dugu bertikalean beharrean horizontalki baino. Hori izan zen mota horretako azkar, eta apur bat nahasia. Zoritxarrez gure garaian sortu da. Kanpo stand izango dut zuetako dutenentzat hemen nor izan buruzko galderak arazo multzo, berreskuratu barne. Hargatik adjourn oraingoz. Eta berriro ere, edozein zalantza izanez gero, kanpo berriketan dezakegu.