1 00:00:00,000 --> 00:00:07,810 2 00:00:07,810 --> 00:00:09,840 >> जेसन Hirschhorn: आपका स्वागत है, 6 सप्ताह के लिए हर कोई,. 3 00:00:09,840 --> 00:00:14,790 मैं अच्छी तरह से जीवित आप सभी को देखने के लिए खुश हूँ और प्रश्नोत्तरी 0 के बाद, क्योंकि मुझे पता है कि 4 00:00:14,790 --> 00:00:15,810 एक मोटा सा था. 5 00:00:15,810 --> 00:00:18,370 लेकिन शुक्र है, आप सभी अविश्वसनीय रूप से अच्छा प्रदर्शन किया था. 6 00:00:18,370 --> 00:00:21,680 और इसलिए यह बढ़िया है. 7 00:00:21,680 --> 00:00:25,840 तुम मेरे अनुभाग में हैं, तो मैं सबसे दिया है आप पहले से ही अपने परीक्षाएँ बैक. 8 00:00:25,840 --> 00:00:28,050 >> आप के एक जोड़े, मैं बैठक कर रहा हूँ कक्षा के बाद. 9 00:00:28,050 --> 00:00:32,360 और तुम एक विस्तार के छात्र रहे हैं और अगर आप वापस अपनी प्रश्नोत्तरी नहीं मिला है 10 00:00:32,360 --> 00:00:35,490 अभी तक, अपनी TF शायद इस पर काम कर रहा है और यह ग्रेडिंग, और यह वापस मिल जाएगा 11 00:00:35,490 --> 00:00:36,490 आप करने के लिए शीघ्र ही. 12 00:00:36,490 --> 00:00:39,650 जो कर रहे हैं तो मेरा विस्तार छात्र सही अब देखना - उम्मीद रहते हैं - 13 00:00:39,650 --> 00:00:42,880 मैं अपने परीक्षाएँ मिलेगा शीघ्र ही के रूप में अच्छी तरह से. 14 00:00:42,880 --> 00:00:45,670 >> इस प्रकार के रूप में आज के लिए हमारा एजेंडा है. 15 00:00:45,670 --> 00:00:50,170 सबसे पहले, हम कुछ खत्म हो जाने के लिए जा रहे हैं CS50 आप के लिए प्रदान करता है कि संसाधनों. 16 00:00:50,170 --> 00:00:54,590 हम अगले प्रश्नोत्तरी 0 पर जाने के लिए जा रहे हैं, और मैं किसी भी सवाल का किसी को जवाब देंगे 17 00:00:54,590 --> 00:00:57,360 विशेष समस्या के बारे में है. 18 00:00:57,360 --> 00:01:02,050 और फिर, हम पर जा रही हो जाएगा फाइल मैं / हे और समस्या 5 सेट. 19 00:01:02,050 --> 00:01:07,360 वे पिछले दो विषयों ले जाएगा खंड के थोक आज. 20 00:01:07,360 --> 00:01:11,680 >> मैं एक के रूप में हर सप्ताह इस सूची लगाई आप सभी के लिए है, लेकिन मूल अनुस्मारक 21 00:01:11,680 --> 00:01:14,650 अनुभाग, हम केवल 90 मिनट है - हम सब कुछ कवर करने में सक्षम नहीं हैं कि मैं 22 00:01:14,650 --> 00:01:16,280 आप लोगों के लिए कवर करने के लिए प्यार होता. 23 00:01:16,280 --> 00:01:21,170 लेकिन हम के लिए संसाधनों का एक टन है कर आप जानते हैं के रूप में आप पर आकर्षित करने के लिए 24 00:01:21,170 --> 00:01:24,000 के माध्यम से सामग्री और काम आपकी समस्या खेलें. 25 00:01:24,000 --> 00:01:30,810 >> मैं ऑनलाइन एक पाठ है कि एक अनुस्मारक आप अगर बाहर भरने के लिए आप के लिए स्थापित बॉक्स, 26 00:01:30,810 --> 00:01:33,250 मेरे लिए कोई भी प्रतिक्रिया है, सकारात्मक और दोनों 27 00:01:33,250 --> 00:01:35,180 खंड के बारे में, रचनात्मक. 28 00:01:35,180 --> 00:01:38,600 उस URL सही यहाँ नीचे स्थित है. 29 00:01:38,600 --> 00:01:43,250 आप किसी भी है, तो एक क्षण ले कृपया प्रतिक्रिया, चाहे अनुभाग के दौरान, 30 00:01:43,250 --> 00:01:48,030 या के बाद, या के बाद आप वीडियो देखने के ऑनलाइन, मुझे अपनी प्रतिक्रिया देते हैं. 31 00:01:48,030 --> 00:01:52,100 मैं वास्तव में इसके बारे में किसी भी और सभी की सराहना करते हैं. 32 00:01:52,100 --> 00:01:55,730 >> इसलिए मैं छोटे बातचीत कर रहा है मेरी के बहुत से 33 00:01:55,730 --> 00:01:59,350 हफ्ते भर में छात्र - मैं हाथ के रूप में वापस परीक्षाएँ, के बारे में बात 34 00:01:59,350 --> 00:02:01,480 बेशक, आप कैसे कर रहे हैं देख. 35 00:02:01,480 --> 00:02:05,120 और एक विषय पर ऊपर आ गया है और से अधिक के बारे में बात करने में - में 36 00:02:05,120 --> 00:02:05,660 विशेष - 37 00:02:05,660 --> 00:02:07,710 समस्या खेलें. 38 00:02:07,710 --> 00:02:13,090 और मुझे लगता है कि विषय समझाया है सही अब बोर्ड पर. 39 00:02:13,090 --> 00:02:16,630 >> मूलतः, वहाँ एक अंतर है है कि कुछ में मोड़ के बीच 40 00:02:16,630 --> 00:02:19,590 सही ढंग से और कुछ किया कि अच्छी तरह से किया जाता है. 41 00:02:19,590 --> 00:02:22,920 अधिकांश लोगों को शानदार कर दिया गया है शुद्धता के मामले में - 42 00:02:22,920 --> 00:02:25,460 सभी psets पर 5 या 4 की. 43 00:02:25,460 --> 00:02:27,930 अधिकांश लोगों को हो रही है उन समय के सभी. 44 00:02:27,930 --> 00:02:31,150 >> हालांकि, सिर्फ इसलिए कि तुमने किया है कुछ अधिकार आपको है इसका मतलब यह नहीं है 45 00:02:31,150 --> 00:02:34,450 के रूप में सुंदर ढंग से कुछ किया, या कुशलता, या के रूप में सफाई से आप के रूप में 46 00:02:34,450 --> 00:02:35,270 यह कर सकते थे. 47 00:02:35,270 --> 00:02:36,790 और क्या है कि डिजाइन है - 48 00:02:36,790 --> 00:02:39,230 और एक डिग्री कम है, शैली के लिए - 49 00:02:39,230 --> 00:02:40,450 कुल्हाड़ियों के लिए कर रहे हैं. 50 00:02:40,450 --> 00:02:45,130 इसलिए मैं आप सभी को प्रेरित कर रहा है, और अन्य TFS हूँ न केवल बारी करने के लिए, तुम लोगों को प्रेरित कर रहे हैं 51 00:02:45,130 --> 00:02:48,320 सही हैं, लेकिन बारी है कि बातों में अच्छी तरह से कोडित रहे हैं कि बातों में. 52 00:02:48,320 --> 00:02:53,060 >> छोरों के लिए अनावश्यक नहीं कर रही है, चर अगर recalculating नहीं 53 00:02:53,060 --> 00:02:53,800 आप की जरूरत नहीं है. 54 00:02:53,800 --> 00:02:58,520 उदाहरण के लिए, सेट पीठ की समस्या को देख 4, पर ईंटों रखकर जब 55 00:02:58,520 --> 00:03:03,070 स्क्रीन, हर पंक्ति - एक में हर ईंट भी पंक्ति में एक ही y-निर्देशांक है - 56 00:03:03,070 --> 00:03:04,390 एक ही ऊंचाई समन्वय. 57 00:03:04,390 --> 00:03:07,930 >> Y-समन्वय स्थापित करने की जरूरत नहीं थी तो यह है कि इंटीरियर के अंदर की गणना की जा 58 00:03:07,930 --> 00:03:11,070 आप की संभावना का इस्तेमाल किया है कि पाश के लिए नेस्ट स्क्रीन पर उन ईंटों डाल दिया. 59 00:03:11,070 --> 00:03:14,030 यह केवल हर गणना की जरूरत है बार जब आप एक पंक्ति बंद है, या 60 00:03:14,030 --> 00:03:15,200 एक पंक्ति नीचे चले गए. 61 00:03:15,200 --> 00:03:19,760 10 ईंटों एक में इसलिए यदि वहाँ कहना पंक्ति, प्रत्येक ईंट एक ही हो सकता है 62 00:03:19,760 --> 00:03:22,260 Y-निर्देशांक, और y-निर्देशांक कि बस की गणना की जा सकती है 63 00:03:22,260 --> 00:03:23,550 उन सभी के लिए एक बार. 64 00:03:23,550 --> 00:03:27,810 >> यह 10 की गणना करने की आवश्यकता नहीं है बार, और न ही करता है कि गणना की जरूरत है 65 00:03:27,810 --> 00:03:30,220 वास्तविक में ऐसा करने के लिए समारोह कॉल - 66 00:03:30,220 --> 00:03:33,020 नई gracked समारोह कॉल. 67 00:03:33,020 --> 00:03:37,820 तो उस के लिए थोड़ा भ्रमित था अगर यदि आप अधिक सामान्य रूप से, चीजें हैं जो 68 00:03:37,820 --> 00:03:40,730 हर बार होने की जरूरत नहीं है तुम नहीं होना चाहिए एक के लिए पाश के माध्यम से जाना 69 00:03:40,730 --> 00:03:42,900 के लिए लूप के अंदर डाल चाहिए, और नहीं तुम जाओ हर समय होता है 70 00:03:42,900 --> 00:03:44,080 के लिए लूप के माध्यम से. 71 00:03:44,080 --> 00:03:49,270 >> हमने देखा कि एक और अच्छी डिजाइन उदाहरण 15 के लिए 3 सप्ताह में, आप रख सकता है 72 00:03:49,270 --> 00:03:50,500 शून्य का ट्रैक. 73 00:03:50,500 --> 00:03:53,600 तो तुम, तुम बोर्ड को प्रारंभ जब बचा - एक वैश्विक चर में, शायद - 74 00:03:53,600 --> 00:03:56,140 एक्स और शून्य से y-निर्देशांक. 75 00:03:56,140 --> 00:03:57,520 और फिर जब भी आप - 76 00:03:57,520 --> 00:04:00,310 अपनी चाल समारोह में, जब भी आप कर एक सफल कदम, आप अद्यतन 77 00:04:00,310 --> 00:04:02,040 शून्य का स्थान. 78 00:04:02,040 --> 00:04:06,240 >> ऐसा करने के लिए होने से बचाने के लिए होगा के माध्यम से देखने के लिए loops के लिए नेस्ट 79 00:04:06,240 --> 00:04:10,700 अपनी चाल समारोह में हर बार बोर्ड और शून्य पाते हैं, या टाइल खोजने, 80 00:04:10,700 --> 00:04:12,460 और फिर इसके आगे क्या जांच ले. 81 00:04:12,460 --> 00:04:16,329 इसके बजाय, आप का स्थान है शून्य, आप बस, नीचे, ऊपर देख सकते हैं 82 00:04:16,329 --> 00:04:21,160 और इसके बारे में छोड़ दिया और सही करने के लिए, लगता है आप के लिए देख रहे थे टाइल. 83 00:04:21,160 --> 00:04:24,970 >> इसलिए हम कर रहे हैं कार्यक्रमों के मामले में लेखन, वे काफी बड़े कभी नहीं रहे 84 00:04:24,970 --> 00:04:28,580 कि इन डिजाइन फैसले के कुछ वास्तव में बाधा जा रहे हैं अपने 85 00:04:28,580 --> 00:04:31,670 कार्यक्रम, या, इसे और अधिक धीरे धीरे रन बनाने या शायद यह भी स्मृति से बाहर चला. 86 00:04:31,670 --> 00:04:35,030 लेकिन हम अभी भी तुम लोगों को प्रेरित कर रहे हैं लिखने के रूप में सुरुचिपूर्ण और 87 00:04:35,030 --> 00:04:36,450 संभव के रूप में कुशल कोड. 88 00:04:36,450 --> 00:04:39,910 >> तो अगर आप ऐसा करेंगे बातें लिख अंत तक एक काफी बड़ा है कि 89 00:04:39,910 --> 00:04:44,660 गुंजाइश है, वे अच्छे से लिखा जाएगा सही होने के अलावा डिजाइन. 90 00:04:44,660 --> 00:04:46,300 तो तुम में से एक नंबर कि बाहर लाया. 91 00:04:46,300 --> 00:04:48,560 यही कारण है कि हम देख रहे हैं कुछ है - हम जारी रखने के लिए जा रहे हैं कुछ 92 00:04:48,560 --> 00:04:49,840 आप पर लोग धक्का. 93 00:04:49,840 --> 00:04:52,460 >> क्या तुमने कभी बारे में कोई प्रश्न हैं अपने कार्यक्रम के डिजाइन, स्वतंत्र महसूस 94 00:04:52,460 --> 00:04:56,870 मेरे लिए बाहर तक पहुँचने, और मैं खुश हूँ करने के लिए आप के साथ अपने कार्यक्रम के माध्यम से चलना, 95 00:04:56,870 --> 00:05:01,320 और डिजाइन के कुछ बाहर बिंदु आपको बनाया है, और तुम कुछ दे निर्णयों 96 00:05:01,320 --> 00:05:06,240 बनाने के लिए सुझाव भी बेहतर डिजाइन निर्णय. 97 00:05:06,240 --> 00:05:08,870 >> तो हम पर स्थानांतरित करने के लिए जा रहे हैं प्रश्नोत्तरी 0 के बारे में बात करने के लिए. 98 00:05:08,870 --> 00:05:11,300 हम ऐसा करने से पहले, किसी को भी करता है के बारे में किसी भी सवाल है क्या 99 00:05:11,300 --> 00:05:14,252 मैं अब तक कवर किया है? 100 00:05:14,252 --> 00:05:21,500 >> [Rustling शोर] 101 00:05:21,500 --> 00:05:22,750 >> जेसन Hirschhorn: सात सेकंड. 102 00:05:22,750 --> 00:05:23,250 ठीक है. 103 00:05:23,250 --> 00:05:24,970 चलो एक बिट के लिए प्रश्नोत्तरी 0 के बारे में बात करते हैं. 104 00:05:24,970 --> 00:05:26,700 आप में से अधिकांश अपनी प्रश्नोत्तरी 0 की पीठ है. 105 00:05:26,700 --> 00:05:29,820 तुम नहीं, उम्मीद करते हैं आप इसे थोड़ा याद है. 106 00:05:29,820 --> 00:05:34,770 लेकिन आप तो प्रश्नोत्तरी 0, तुम ले लिया है भी में ऑनलाइन पीडीएफ के लिए उपयोग किया 107 00:05:34,770 --> 00:05:35,890 नमूना समाधान. 108 00:05:35,890 --> 00:05:39,480 >> किसी के सामने कोई प्रश्न है हम के बारे में हफ्ते की सामग्री में कूदने 109 00:05:39,480 --> 00:05:41,520 प्रश्नोत्तरी 0 पर एक विशेष समस्या - 110 00:05:41,520 --> 00:05:44,630 क्यों का जवाब है कि यह क्या है? 111 00:05:44,630 --> 00:05:47,255 किसी को भी कुछ के बारे में उलझन में है? 112 00:05:47,255 --> 00:05:50,230 आप सही समस्या है, लेकिन फिर भी अगर बस मुझे यह एक बिट व्याख्या करना चाहते हैं 113 00:05:50,230 --> 00:05:52,640 अधिक, मैं अब ऐसा करने के लिए खुश हूँ. 114 00:05:52,640 --> 00:05:57,800 >> तो मैं तुम लोगों से कहा है कि कुछ के साथ तैयार आओ 115 00:05:57,800 --> 00:05:59,440 प्रश्नोत्तरी 0 के बारे में विचार. 116 00:05:59,440 --> 00:06:02,660 तो जो हमें प्राप्त करना चाहते हैं एक सवाल के साथ या शुरू 117 00:06:02,660 --> 00:06:04,655 प्रश्नोत्तरी 0 के बारे में टिप्पणी है? 118 00:06:04,655 --> 00:06:07,435 119 00:06:07,435 --> 00:06:10,410 >> पेपर [rustling] 120 00:06:10,410 --> 00:06:11,470 >> जेसन Hirschhorn: हर कोई पूरी तरह से किया था. 121 00:06:11,470 --> 00:06:12,720 तो मुझे पता है [हंसते हुए] 122 00:06:12,720 --> 00:06:15,950 कुछ सवाल वहाँ के लिए है प्रश्नोत्तरी 0 के बारे में. 123 00:06:15,950 --> 00:06:27,940 124 00:06:27,940 --> 00:06:28,590 ठीक है. 125 00:06:28,590 --> 00:06:29,210 हां. 126 00:06:29,210 --> 00:06:29,600 Ompica. 127 00:06:29,600 --> 00:06:30,520 >> OMPICA: संख्या 10. 128 00:06:30,520 --> 00:06:33,560 >> जेसन Hirschhorn: संख्या 10. 129 00:06:33,560 --> 00:06:35,400 जो एक संख्या 10 थी? 130 00:06:35,400 --> 00:06:35,840 >> OMPICA: - 131 00:06:35,840 --> 00:06:36,420 >> जेसन Hirschhorn: मैं नहीं - 132 00:06:36,420 --> 00:06:37,670 >> OMPICA: शामिल हैं - 133 00:06:37,670 --> 00:06:40,060 134 00:06:40,060 --> 00:06:42,180 >> जेसन Hirschhorn: संख्या 10 आठ था मैं - मैं करने के लिए आठ लिख? 135 00:06:42,180 --> 00:06:42,980 >> OMPICA: हाँ. 136 00:06:42,980 --> 00:06:43,630 >> जेसन Hirschhorn: ठीक है. 137 00:06:43,630 --> 00:06:47,390 तो एक और सवाल आप हो सकता था मैं पूर्वद्रष्टा हूँ था पूछा? 138 00:06:47,390 --> 00:06:48,630 इसका जवाब हां में है. 139 00:06:48,630 --> 00:06:52,060 प्रश्नोत्तरी पहले भाग में, मैंने पूछा तुम लोग स्टर्लिंग दोनों कोड के लिए और 140 00:06:52,060 --> 00:06:52,980 आठ मैं करने के लिए. 141 00:06:52,980 --> 00:06:54,770 उन दोनों को क्या हुआ प्रश्नोत्तरी पर दिखाई देते हैं. 142 00:06:54,770 --> 00:06:57,510 तो उम्मीद है, आप भुगतान किया उस पर ध्यान. 143 00:06:57,510 --> 00:07:02,520 >> तुम था, तो आपके पास होगा शायद उन दो पर अच्छी तरह से किया. 144 00:07:02,520 --> 00:07:06,030 लेकिन आठ मैं करने के लिए, हमने किया नहीं वास्तव में कोड यह कक्षा में, लेकिन यह फिर से किया गया था, 145 00:07:06,030 --> 00:07:07,500 प्रश्नोत्तरी पर पूछा. 146 00:07:07,500 --> 00:07:13,270 इसलिए लेने के लिए चीजों की एक जोड़ी मैं करने के लिए आठ कोडिंग जब ध्यान दें. 147 00:07:13,270 --> 00:07:17,320 पहली बात, प्रश्न प्रति था, आप जांच की जरूरत है कि यदि स्ट्रिंग 148 00:07:17,320 --> 00:07:20,300 अशक्त करने के लिए बराबर था. 149 00:07:20,300 --> 00:07:28,060 >> कुछ लोगों पर बाद में जांच करने की कोशिश कार्यक्रम में अगर ब्रैकेट मैं था - 150 00:07:28,060 --> 00:07:30,940 कि इतने में एक विशिष्ट चरित्र स्ट्रिंग - बातिल के बराबर था. 151 00:07:30,940 --> 00:07:35,600 लेकिन वह अशक्त अनिवार्य है, याद है - यह सोचने के लिए अच्छा है 152 00:07:35,600 --> 00:07:39,100 एक शून्य सूचक के रूप में अशक्त - शून्य करने के लिए एक सूचक - 153 00:07:39,100 --> 00:07:40,920 स्मृति में किसी जगह जहां आप का उपयोग कभी नहीं हो सकता. 154 00:07:40,920 --> 00:07:44,730 >> तो अगर तुम्हें कुछ हो, अशक्त करने के लिए बराबर है यह initialized नहीं किया गया है कि पता है, 155 00:07:44,730 --> 00:07:46,430 या वहाँ कुछ भी नहीं है. 156 00:07:46,430 --> 00:07:50,950 तो चलो, एक चार सितारा s है ब्रैकेट मैं एक चार है. 157 00:07:50,950 --> 00:07:57,410 तो यह, अशक्त करने की तुलना करने के लिए समझ में आता है लेकिन नहीं है ब्रैकेट मैं अशक्त करने के लिए. 158 00:07:57,410 --> 00:07:59,390 लेकिन फिर - इसलिए कि पहली बात थी तुम क्या करने वाले थे कि - 159 00:07:59,390 --> 00:08:03,510 सुनिश्चित करें कि करने के लिए जाँच आप वास्तव में एक वास्तविक स्ट्रिंग मिला. 160 00:08:03,510 --> 00:08:08,020 >> इसके बाद, आप के माध्यम से जाना चाहता था स्ट्रिंग में प्रत्येक चरित्र. 161 00:08:08,020 --> 00:08:12,500 और इसलिए है कि एक एस ब्रैकेट की तरह होगा मैं, उदाहरण के लिए, मैं अपने iterator है. 162 00:08:12,500 --> 00:08:17,250 और उस चरित्र ले, और अपने वास्तविक मूल्य मिलता है. 163 00:08:17,250 --> 00:08:21,800 आप इसे एक चार के रूप में जमा है, लेकिन शून्य के लिए ASCII मान - 164 00:08:21,800 --> 00:08:23,010 एक चरित्र के रूप में शून्य - 165 00:08:23,010 --> 00:08:25,450 वास्तव में पूर्णांक शून्य नहीं है. 166 00:08:25,450 --> 00:08:28,700 यह आप कर सकते हैं कि कुछ अन्य नंबर ASCII तालिका में ऊपर देखो. 167 00:08:28,700 --> 00:08:30,790 >> तो एक तरह से उस के लिए सही करने के लिए - के लिए सही करने के लिए शायद सबसे अच्छा तरीका 168 00:08:30,790 --> 00:08:33,760 कि - यह से घटाना है चरित्र मूल्य - 169 00:08:33,760 --> 00:08:35,140 एक चरित्र के रूप में शून्य. 170 00:08:35,140 --> 00:08:38,490 तो शून्य ही बोली, शून्य, एक अन्य एकल बोली. 171 00:08:38,490 --> 00:08:44,620 यही कारण है कि आप जो कुछ भी संख्या ले जाएगा एक चार के रूप में, और यह करने के लिए बराबर मिल 172 00:08:44,620 --> 00:08:46,720 एक वास्तविक पूर्णांक के रूप में संख्या. 173 00:08:46,720 --> 00:08:50,300 >> और उस दृष्टिकोण के समान है बहुत से लोगों में ले लिया 174 00:08:50,300 --> 00:08:52,800 समस्या सीज़र के साथ, 2 सेट और Viginere - 175 00:08:52,800 --> 00:08:55,160 उन सिफर, जब आप उन्हें घूर्णन कर रहे थे. 176 00:08:55,160 --> 00:08:59,210 आप से संख्या के रूप में यह है तो बाद शून्य से नौ, तब - के आधार पर 177 00:08:59,210 --> 00:09:02,750 यह परम संख्या में चला जाता है, जहां - आप यह गुणा करने की आवश्यकता 178 00:09:02,750 --> 00:09:04,120 10 की एक शक्ति के द्वारा. 179 00:09:04,120 --> 00:09:07,340 >> कुछ लोगों को वापस से ले जाया गया सामने, और व्यक्तिगत गुणा 180 00:09:07,340 --> 00:09:08,940 10 की एक शक्ति के द्वारा संख्या. 181 00:09:08,940 --> 00:09:11,160 कुछ लोगों से स्थानांतरित वापस करने के लिए सामने - 182 00:09:11,160 --> 00:09:14,430 और इसलिए उच्चतम ले लिया पहली संख्या के आदेश - 183 00:09:14,430 --> 00:09:18,190 और एक में उन बचा होगा वैश्विक काउंटर चर. 184 00:09:18,190 --> 00:09:20,880 और फिर के माध्यम से हर बार पाश, गुणा कि वैश्विक विशाल 185 00:09:20,880 --> 00:09:25,640 बनाने के लिए, 10 से चर का मुकाबला अगले चार के लिए अंतरिक्ष. 186 00:09:25,640 --> 00:09:28,750 >> तो यह है कि बिना थोड़ा भ्रमित था मुझे बोर्ड पर यह लिख. 187 00:09:28,750 --> 00:09:31,550 लेकिन नमूना समाधान आप के लिए उपलब्ध है. 188 00:09:31,550 --> 00:09:32,870 लेकिन उन बड़ी बातें कर रहे थे हम देख रहे थे. 189 00:09:32,870 --> 00:09:36,400 यह भी सुनिश्चित करें कि प्रत्येक बनाने के लिए एक चेक व्यक्तिगत चरित्र एक वास्तव में था 190 00:09:36,400 --> 00:09:39,780 शून्य और नौ, और नहीं के बीच चरित्र एक एक जैसे कुछ अन्य चरित्र,, 191 00:09:39,780 --> 00:09:41,160 उदाहरण के लिए. 192 00:09:41,160 --> 00:09:43,150 >> उन हम देख रहे थे बातें कर रहे थे के लिए कि प्रश्न में. 193 00:09:43,150 --> 00:09:46,510 194 00:09:46,510 --> 00:09:47,980 कि आपके सवाल का जवाब है? 195 00:09:47,980 --> 00:09:49,320 >> OMPICA: हाँ. 196 00:09:49,320 --> 00:09:50,240 >> जेसन Hirschhorn: ठीक है. 197 00:09:50,240 --> 00:09:53,940 किसी भी अन्य प्रश्न हैं प्रश्नोत्तरी 0 के बारे में? 198 00:09:53,940 --> 00:09:55,440 क्या संकलन के बारे में? 199 00:09:55,440 --> 00:09:56,740 हर कोई सही संकलन? 200 00:09:56,740 --> 00:09:58,370 नहीं. 201 00:09:58,370 --> 00:09:58,840 एक थे - 202 00:09:58,840 --> 00:10:01,010 [हंसते हुए] 203 00:10:01,010 --> 00:10:03,265 के बारे में किसी भी सवाल संकलन प्रक्रिया? 204 00:10:03,265 --> 00:10:06,050 205 00:10:06,050 --> 00:10:06,966 वाह. 206 00:10:06,966 --> 00:10:11,090 >> पेपर [rustling] 207 00:10:11,090 --> 00:10:11,520 >> जेसन Hirschhorn: हाँ. 208 00:10:11,520 --> 00:10:11,700 माइकल. 209 00:10:11,700 --> 00:10:14,140 >> माइकल: - यादृच्छिक संख्या 7 है? 210 00:10:14,140 --> 00:10:16,500 >> जेसन Hirschhorn: संख्या 7. 211 00:10:16,500 --> 00:10:20,670 7 नंबर एक यादृच्छिक पूर्णांक मिलता था. 212 00:10:20,670 --> 00:10:21,110 बहुत बढ़िया. 213 00:10:21,110 --> 00:10:25,630 तो तुम एक पूर्णांक एक दिया और एक कर रहे हैं पूर्णांक ख, और आप एक यादृच्छिक चाहते हैं 214 00:10:25,630 --> 00:10:28,710 ए और बी के बीच पूर्णांक. 215 00:10:28,710 --> 00:10:31,740 हम वास्तव में यह एक पर लिख सकते हैं बोर्ड, क्योंकि यह एक 216 00:10:31,740 --> 00:10:33,320 कोड की एक पंक्ति थी - 217 00:10:33,320 --> 00:10:34,390 यह करने के लिए एक ही रास्ता है. 218 00:10:34,390 --> 00:10:37,810 >> तो हम एक के रूप में drand दिया हो समारोह हम इस्तेमाल कर सकते हैं. 219 00:10:37,810 --> 00:10:38,820 और क्या drand करता है - 220 00:10:38,820 --> 00:10:40,290 यह वरीयता प्राप्त किया गया है संभालने - 221 00:10:40,290 --> 00:10:42,316 क्या लौटने drand करता है? 222 00:10:42,316 --> 00:10:44,840 >> माइकल: 0.0 और 1.0 के बीच एक नाव. 223 00:10:44,840 --> 00:10:45,530 >> जेसन Hirschhorn: एक नंबर - हाँ. 224 00:10:45,530 --> 00:10:47,910 0 और 1 के बीच एक नंबर. 225 00:10:47,910 --> 00:10:51,760 और इसलिए हम बी और एक है. 226 00:10:51,760 --> 00:10:55,480 और फिर हम अपने यादृच्छिक संख्या है 0 और 1 के बीच drand ने हमें दिया. 227 00:10:55,480 --> 00:11:01,480 228 00:11:01,480 --> 00:11:06,630 कुछ लोगों को बी डालने की कोशिश की, या बी माइनस उन के अंदर एक, या कुछ और 229 00:11:06,630 --> 00:11:07,960 कोष्ठक. 230 00:11:07,960 --> 00:11:11,210 यही कारण है कि वे कर रहे हैं कि इसका मतलब यह होगा इस समारोह के लिए तर्क. 231 00:11:11,210 --> 00:11:13,450 >> drand कोई बहस नहीं ले करता है - getString की तरह 232 00:11:13,450 --> 00:11:14,330 किसी भी तर्क से नहीं ले. 233 00:11:14,330 --> 00:11:16,600 तो यह करीब है, बस खुले कोष्ठक है paren - और कि, ही, है 234 00:11:16,600 --> 00:11:17,330 समारोह कॉल. 235 00:11:17,330 --> 00:11:19,770 और कहा कि तुम एक नंबर देता है 0 के बीच और 1. 236 00:11:19,770 --> 00:11:22,820 बेशक, हम एक पूरी श्रृंखला है संख्या के अंदर हो सकता है कि 237 00:11:22,820 --> 00:11:28,470 >> बी 10 है और एक 5 है, तो हम वास्तव में, कहो 5 की एक सीमा के साथ एक नंबर चाहिए. 238 00:11:28,470 --> 00:11:36,940 तो हम क्या करने की जरूरत अगले बात है श्रृंखला बी शून्य से एक के द्वारा इस गुणा. 239 00:11:36,940 --> 00:11:40,380 इसलिए कि गुणा है संभालने. 240 00:11:40,380 --> 00:11:42,590 और कहा कि हमें एक नंबर देता हूँ एक दिया सीमा के भीतर. 241 00:11:42,590 --> 00:11:46,610 और उस विशिष्ट रेंज से किया जा रहा बी शून्य से एक के बीच का अंतर. 242 00:11:46,610 --> 00:11:50,030 >> और अंत में, कि केवल से दे देंगे - बी शून्य से एक के बीच सीमा का कहना है 243 00:11:50,030 --> 00:11:52,520 5, कि हमें एक देता हूँ है 0-5 संख्या. 244 00:11:52,520 --> 00:11:56,000 एक तथ्य यह है कि 5 में है लेकिन, अगर हम को बढ़ावा देने की जरूरत यह है, जहां तक ​​इस श्रृंखला ऊपर 245 00:11:56,000 --> 00:12:01,380 वास्तव में एक जोड़कर, होना चाहिए. 246 00:12:01,380 --> 00:12:02,580 इसलिए कि तर्क सही हो जाता है. 247 00:12:02,580 --> 00:12:03,745 और फिर, तुम होगा एक और सवाल? 248 00:12:03,745 --> 00:12:04,547 >> माइकल: नहीं 249 00:12:04,547 --> 00:12:06,010 मैं सिर्फ सही अब सच में मूक लग रहा है. 250 00:12:06,010 --> 00:12:06,405 [हंसते हुए] 251 00:12:06,405 --> 00:12:06,730 >> जेसन Hirschhorn: नहीं 252 00:12:06,730 --> 00:12:08,640 सच में मूक महसूस न करें. 253 00:12:08,640 --> 00:12:10,560 लोगों के एक नंबर के लिए संघर्ष इस सवाल के साथ. 254 00:12:10,560 --> 00:12:13,920 और फिर, अन्य प्रश्न है, drand, आप ने कहा आप एक नाव देता है - 255 00:12:13,920 --> 00:12:14,940 एक नाव देता है. 256 00:12:14,940 --> 00:12:18,020 लेकिन इस समारोह वास्तव में पूछा एक पूर्णांक वापस करने के लिए के लिए. 257 00:12:18,020 --> 00:12:23,700 >> आप स्पष्ट रूप से इस कास्ट करने की जरूरत नहीं है एक पूर्णांक के लिए, इन क्योंकि 258 00:12:23,700 --> 00:12:29,090 आपरेशन सब एक के रूप में इलाज होगा नाव - एक चल बिन्दु संख्या के रूप में. 259 00:12:29,090 --> 00:12:31,570 इस वसीयत की तरह - यहां तक ​​कि अगर यह एक पूर्णांक, यह इच्छा है 260 00:12:31,570 --> 00:12:32,890 सही ढंग से गुणा किया. 261 00:12:32,890 --> 00:12:34,000 सभी गुणन काम करेंगे. 262 00:12:34,000 --> 00:12:35,060 आप यहाँ यह कास्ट करने की जरूरत नहीं है. 263 00:12:35,060 --> 00:12:36,480 वास्तव में, आप यह नहीं डाली चाहिए. 264 00:12:36,480 --> 00:12:37,310 >> होता है कि - 265 00:12:37,310 --> 00:12:40,750 आप एक नंबर देना होगा अगर कि 0 और 1 के बीच है - 266 00:12:40,750 --> 00:12:42,680 एक यादृच्छिक संख्या, एक चल बिन्दु - 267 00:12:42,680 --> 00:12:47,850 तो यह या तो ऐसा है, तो केवल 0 या 1 हो जाएगा आपको लगता है कि परिशुद्धता के सभी खो देंगे. 268 00:12:47,850 --> 00:12:50,120 लेकिन अंत में, जब तुम वापस, यह स्वतः ही हो जाता है 269 00:12:50,120 --> 00:12:51,620 एक पूर्णांक के रूप में वापस भेज दिया. 270 00:12:51,620 --> 00:12:56,870 तो तुम क्या करने की जरूरत नहीं है कि अपने आप कास्टिंग. 271 00:12:56,870 --> 00:13:00,810 >> तो इस सवाल का जवाब था उस सवाल, संख्या 7. 272 00:13:00,810 --> 00:13:02,190 प्रश्नोत्तरी 0 पर कोई अन्य प्रश्न? 273 00:13:02,190 --> 00:13:03,300 हाँ, एनी. 274 00:13:03,300 --> 00:13:05,050 >> एनी: हम पुनरावर्ती का उपयोग करते हैं - 275 00:13:05,050 --> 00:13:07,850 जब हम चलने का छोरों प्रयोग करते हैं? 276 00:13:07,850 --> 00:13:10,210 >> जेसन Hirschhorn: जब आप प्रयोग करते हैं पुनरावर्ती - इतना अधिक आम तौर पर, 277 00:13:10,210 --> 00:13:14,110 प्रत्यावर्तन बनाम के पेशेवरों और विपक्ष एक चलने का दृष्टिकोण. 278 00:13:14,110 --> 00:13:17,110 किसी को भी एक समर्थक या एक चोर की पेशकश कर सकते हैं? 279 00:13:17,110 --> 00:13:19,460 कृपया? 280 00:13:19,460 --> 00:13:20,140 किसी को भी नहीं कर सकते हैं. 281 00:13:20,140 --> 00:13:22,526 कौन एक समर्थक या एक चोर की पेशकश कर सकते हैं? 282 00:13:22,526 --> 00:13:26,963 >> पेपर [rustling] 283 00:13:26,963 --> 00:13:29,730 >> छात्र 1: पुनरावर्ती कम है कोडिंग - कम टाइपिंग? 284 00:13:29,730 --> 00:13:33,170 >> जेसन Hirschhorn: तो आम तौर पर, प्रत्यावर्तन विशेष रूप से, एक समारोह - 285 00:13:33,170 --> 00:13:35,750 या मर्ज की तरह एक एल्गोरिथ्म तरह - जो उधार देता है 286 00:13:35,750 --> 00:13:37,300 एक पुनरावर्ती दृष्टिकोण करने के लिए - 287 00:13:37,300 --> 00:13:40,710 और अधिक सरल हो सकता है बारी बारी से कोड करने के लिए. 288 00:13:40,710 --> 00:13:43,940 और बस अधिक मतलब बारी बारी से यह करने के लिए. 289 00:13:43,940 --> 00:13:46,230 इसलिए कि प्रत्यावर्तन के लिए एक समर्थक होगा. 290 00:13:46,230 --> 00:13:46,610 अन्य? 291 00:13:46,610 --> 00:13:47,467 हाँ? 292 00:13:47,467 --> 00:13:49,240 >> छात्र 2: प्रत्यावर्तन के लिए कांग्रेस - 293 00:13:49,240 --> 00:13:50,940 इसे और अधिक स्मृति का उपयोग करता है. 294 00:13:50,940 --> 00:13:52,200 >> जेसन Hirschhorn: तो बिल्कुल सही. 295 00:13:52,200 --> 00:13:55,720 एक पुनरावर्ती समारोह जोड़कर रखना होगा ढेर ढेर फ्रेम करने के लिए. 296 00:13:55,720 --> 00:13:59,690 आप में से बहुत पर काम कर रहे हैं तो अगर संख्या, और यह कॉल करने के लिए है 297 00:13:59,690 --> 00:14:02,560 एक बहुत समारोह, तो आप निश्चित रूप से होगा जबकि, अधिक स्मृति ले 298 00:14:02,560 --> 00:14:05,810 चलने का एक दृष्टिकोण केवल एक ही रखा जाएगा , ढेर पर फ्रेम हो चुकी है क्योंकि 299 00:14:05,810 --> 00:14:08,420 यह सब एक समारोह के भीतर होता है. 300 00:14:08,420 --> 00:14:11,010 >> किसी भी अन्य पेशेवरों और विपक्ष? 301 00:14:11,010 --> 00:14:11,500 हाँ. 302 00:14:11,500 --> 00:14:12,550 >> छात्र 3: प्रत्यावर्तन के लिए पेशेवरों. 303 00:14:12,550 --> 00:14:15,950 आप में निर्धारित करने के लिए नहीं है अग्रिम कितनी बार 304 00:14:15,950 --> 00:14:17,660 कोड दोहराया जा सकता था. 305 00:14:17,660 --> 00:14:22,810 आप का एक पूर्व निर्धारित संख्या में हो सकता है आप तो, पुनरावृति करना है कि टाइम्स 306 00:14:22,810 --> 00:14:26,420 प्रत्यावर्तन, बेहतर है क्योंकि यह नतीजा है कि लेता है. 307 00:14:26,420 --> 00:14:27,780 >> जेसन Hirschhorn: मैं सच है कि लगता है. 308 00:14:27,780 --> 00:14:30,770 लेकिन मैं दोनों ही मामलों में लगता है आप कभी नहीं होगा - 309 00:14:30,770 --> 00:14:33,290 आप शायद कुछ मिल जाएगा उपयोगकर्ता से इनपुट. 310 00:14:33,290 --> 00:14:35,990 या इस समारोह में कुछ इनपुट होगा कि निर्धारित करेगा कि कितनी बार यह 311 00:14:35,990 --> 00:14:36,730 चलाना चाहिए. 312 00:14:36,730 --> 00:14:39,520 तो आम तौर पर, आप हार्ड कोड नहीं होगा - यहां तक ​​कि चलने का एक दृष्टिकोण में - कैसे 313 00:14:39,520 --> 00:14:40,940 कई बार लगता है कि पाश चलाया जाना चाहिए. 314 00:14:40,940 --> 00:14:46,100 315 00:14:46,100 --> 00:14:48,670 >> तुम थे एक और भी था एनी, के बारे में सोच? 316 00:14:48,670 --> 00:14:49,330 ठीक है. 317 00:14:49,330 --> 00:14:51,650 तो उन शायद दो हैं - 318 00:14:51,650 --> 00:14:54,370 सबसे बड़ा समर्थक है और सबसे बड़ी बनाम एक पुनरावर्ती को चुनाव 319 00:14:54,370 --> 00:14:57,080 एक चलने का दृष्टिकोण. 320 00:14:57,080 --> 00:14:57,690 ठीक है. 321 00:14:57,690 --> 00:14:59,465 प्रश्नोत्तरी 0 पर कुछ और? 322 00:14:59,465 --> 00:15:08,940 323 00:15:08,940 --> 00:15:09,920 >> चलो पर चलते हैं. 324 00:15:09,920 --> 00:15:15,260 फ़ाइल मैं / ओ एक अद्भुत कम नहीं है इस सप्ताह फ़ाइल पर मैं / हे कि उम्मीद है कि 325 00:15:15,260 --> 00:15:19,270 आप कई देखा है बार, और प्रशंसा की. 326 00:15:19,270 --> 00:15:22,910 काम का एक बहुत है कि में चला गया, और मैं यह insanely मददगार है सुना. 327 00:15:22,910 --> 00:15:25,740 मैं भी इस स्लाइड पर लिंक शामिल मामले में आप नहीं पड़ा है एक 328 00:15:25,740 --> 00:15:29,160 यह 10 बार देखने का मौका. 329 00:15:29,160 --> 00:15:35,280 >> तो, हम संक्षेप में ऊपर जाने के लिए जा रहे हैं खोलने और काम करने के लिए बड़े कदम 330 00:15:35,280 --> 00:15:38,400 फाइलों के साथ, और फिर हम करने जा रहे हैं पहले एक कोडन समस्या में डुबकी 331 00:15:38,400 --> 00:15:40,400 समस्या का परीक्षण. 332 00:15:40,400 --> 00:15:44,330 तो फिर, मैं इस पर डाल करने के लिए जा रहा हूँ स्क्रीन, लेकिन मैं के लिए बात करने के लिए जा रहा हूँ 333 00:15:44,330 --> 00:15:47,630 हम क्या कर रहे हैं के बारे में सिर्फ एक मिनट फ़ाइल के साथ यहाँ क्या कर I/O-- 334 00:15:47,630 --> 00:15:49,090 इसका क्या मतलब है? 335 00:15:49,090 --> 00:15:55,280 >> यही कारण है कि हम बना सकते हैं इसका मतलब है कि हमारी कार्यक्रम, और फिर हमारे कार्यक्रम है 336 00:15:55,280 --> 00:16:00,370 बाहर निकलें, और पर कोई प्रभाव नहीं बना हमारे कार्यक्रम के लिए बाहर की दुनिया. 337 00:16:00,370 --> 00:16:04,630 लेकिन हम फाइलों के साथ काम शुरू करने के समय - दोनों में उन्हें पढ़ने और बनाने 338 00:16:04,630 --> 00:16:10,460 उन्हें - हम पर कुछ प्रभाव हो सकता है हमारे कार्यक्रम के लिए बाहर की दुनिया. 339 00:16:10,460 --> 00:16:15,440 >> वैसे ही जैसे माइक्रोसॉफ्ट वर्ड में सक्षम नहीं था फिर, किसी भी पद दस्तावेजों बनाने के लिए 340 00:16:15,440 --> 00:16:18,710 माइक्रोसॉफ्ट वर्ड, आपके के सभी पद छोड़ने एक बार काम चला गया होगा, और यह होगा 341 00:16:18,710 --> 00:16:19,740 वास्तव में बेकार हो. 342 00:16:19,740 --> 00:16:23,620 हम अंततः के लिए सक्षम होना चाहता हूँ प्रभावित कर सकते हैं कि प्रोग्राम लिखने 343 00:16:23,620 --> 00:16:31,350 उन्हें चारों ओर दुनिया, दोनों में लेने के द्वारा फ़ाइलों के संदर्भ में और - जटिल आदानों 344 00:16:31,350 --> 00:16:37,080 फ़ाइलों के माध्यम से, और भी दिलचस्प बनाने और सम्मोहक Outputs - 345 00:16:37,080 --> 00:16:39,520 फ़ाइलों के विभिन्न प्रकार के संदर्भ में. 346 00:16:39,520 --> 00:16:43,730 >> हम शुरू कर रहे हैं तो यही कारण है कि है फाइलों के साथ काम करने के लिए सीखने. 347 00:16:43,730 --> 00:16:47,080 अधिक विशेष रूप से, क्या हम इस प्रकार है करते हैं. 348 00:16:47,080 --> 00:16:47,680 यह बहुत सरल है. 349 00:16:47,680 --> 00:16:51,530 वहाँ कदम का केवल एक जोड़े हैं, और वे इस कोड को यहां सूचीबद्ध हैं. 350 00:16:51,530 --> 00:16:55,130 इसलिए हम के माध्यम से जाने के लिए जा रहे हैं रेखा ने इस कोड लाइन. 351 00:16:55,130 --> 00:16:57,630 >> सबसे पहले, आप पर प्रकाश डाला देखते हैं - 352 00:16:57,630 --> 00:17:01,330 आप एक फ़ाइल के साथ काम कर रहे हैं, जब चाहे फ़ाइल के प्रकार का यह है 353 00:17:01,330 --> 00:17:02,670 आप इसे खोलने की जरूरत है. 354 00:17:02,670 --> 00:17:05,130 और उस fopen के लिए एक फोन के साथ है - 355 00:17:05,130 --> 00:17:05,950 यहीं. 356 00:17:05,950 --> 00:17:07,980 आप फ़ाइल के नाम शामिल हैं. 357 00:17:07,980 --> 00:17:11,930 फ़ाइल, अपनी निर्देशिका में नहीं है या फ़ोल्डर जहां इस कार्यक्रम 358 00:17:11,930 --> 00:17:15,910 जीवन है, तो आप भी शामिल करने की आवश्यकता उस फ़ाइल है, जहां के लिए एक रास्ता. 359 00:17:15,910 --> 00:17:19,099 >> हम कल्पना करने के लिए जा रहे हैं कि इस "text.txt" नामक फ़ाइल - 360 00:17:19,099 --> 00:17:24,220 एक साधारण पाठ दस्तावेज़ - में है इस कार्यक्रम के रूप में एक ही फ़ोल्डर है. 361 00:17:24,220 --> 00:17:26,859 तो उस में रखने के लिए एक और बात है मन - कि आप एक फ़ाइल को खोलने के लिए चाहते हैं 362 00:17:26,859 --> 00:17:30,050 कहीं और, आप वास्तव में जरूरत इसके स्थान शामिल करने के लिए. 363 00:17:30,050 --> 00:17:33,520 >> दूसरे, आप के लिए एक तर्क पारित कर सकते हैं fopen, और है कि आप क्या करना चाहते है 364 00:17:33,520 --> 00:17:34,620 फ़ाइल के साथ. 365 00:17:34,620 --> 00:17:38,450 तीन मुख्य तर्क है कि कर रहे हैं आप fopen को पारित करने के लिए जा रहे हैं. 366 00:17:38,450 --> 00:17:40,060 कौन मुझे उन तीन दे सकता है? 367 00:17:40,060 --> 00:17:44,960 368 00:17:44,960 --> 00:17:47,130 कौन मुझे उनमें से एक को दे सकता है? 369 00:17:47,130 --> 00:17:48,130 हां. 370 00:17:48,130 --> 00:17:50,010 >> छात्र 4: फ़ाइल नाम? 371 00:17:50,010 --> 00:17:50,440 >> जेसन Hirschhorn: क्षमा करें. 372 00:17:50,440 --> 00:17:55,490 आप पास कर सकते हैं तीन मुख्य तर्क दूसरा तर्क fopen के रूप में. 373 00:17:55,490 --> 00:17:57,060 आप ठीक कह रहे हैं - फाइलों के नाम पहला तर्क है. 374 00:17:57,060 --> 00:18:01,620 लेकिन fopen के लिए दूसरा तर्क हैं आम तौर पर तीन तार, और - हाँ. 375 00:18:01,620 --> 00:18:02,210 Aleja. 376 00:18:02,210 --> 00:18:03,490 >> Aleja: संलग्न के लिए एक. 377 00:18:03,490 --> 00:18:06,840 >> जेसन Hirschhorn: एक, अगर तुम चाहते हो पहले से मौजूद है कि एक फ़ाइल को संलग्न. 378 00:18:06,840 --> 00:18:07,810 >> छात्र 5: पढ़ने के लिए आर. 379 00:18:07,810 --> 00:18:09,930 >> जेसन Hirschhorn: A, आप अगर एक फ़ाइल से पढ़ने के लिए चाहते हैं. 380 00:18:09,930 --> 00:18:10,670 >> छात्र 6: लिखने के लिए डब्ल्यू. 381 00:18:10,670 --> 00:18:12,840 >> जेसन Hirschhorn: और, w अगर आप एक फाइल को लिखने के लिए चाहते हैं. 382 00:18:12,840 --> 00:18:17,570 तो इस मामले में, हम लिख रहे हैं फाइल करने के लिए, तो हम w है. 383 00:18:17,570 --> 00:18:22,360 आप इसे खोलने, आप भी बचाना है कहीं फाइल, और उस के साथ है 384 00:18:22,360 --> 00:18:26,000 के बाएं हाथ की ओर करने के लिए कोड असाइनमेंट ऑपरेटर - 385 00:18:26,000 --> 00:18:31,220 मैं एक फ़ाइल के लिए एक संकेत पैदा कर रहा हूँ इस मामले में, फ़ाइल में, कहा जाता है. 386 00:18:31,220 --> 00:18:36,070 >> हमें चिंता करने नहीं जा रहे हैं क्या इस सब टोपियां फ़ाइल बात है. 387 00:18:36,070 --> 00:18:40,600 इतना ही कहना है, यह एक लंबे समय है शून्य और लोगों की धारा. 388 00:18:40,600 --> 00:18:44,970 और कहा कि हम करने जा रहे हैं कि कैसे है यह काम करते हैं और यह समझते हैं. 389 00:18:44,970 --> 00:18:47,300 >> हम क्या करने की जरूरत अगले बात है - और यह अविश्वसनीय रूप से महत्वपूर्ण है - 390 00:18:47,300 --> 00:18:49,070 आप एक फ़ाइल को खोलने के लिए जब भी - 391 00:18:49,070 --> 00:18:54,250 वास्तव में, आप malloc कॉल जब भी, के लिए उदाहरण के लिए, और कुछ स्मृति पाने के लिए और कोशिश 392 00:18:54,250 --> 00:18:57,980 और आप हमेशा एक सूचक में इसे बचाने के लिए सुनिश्चित करें कि करने के लिए जाँच करना चाहते हैं 393 00:18:57,980 --> 00:19:00,230 समारोह अशक्त वापस नहीं किया. 394 00:19:00,230 --> 00:19:05,230 >> तो इस मामले में, हम बनाने के लिए जाँच कर रहे हैं हम वास्तव में खोला यह सुनिश्चित करें कि 395 00:19:05,230 --> 00:19:10,230 सही ढंग से फाइल, और वहाँ था हमारे कार्यक्रम में कोई त्रुटि. 396 00:19:10,230 --> 00:19:15,160 इसके बाद, एक बार हम यह सुनिश्चित करने के लिए जाँच की है हम हम कर सकते हैं, काम कर रहे एक फ़ाइल है कि 397 00:19:15,160 --> 00:19:18,520 , लिखने के लिए, या से पढ़ या फ़ाइल को संलग्न. 398 00:19:18,520 --> 00:19:24,270 इस मामले में, मैं बस मुद्रण कर रहा हूँ इस फाइल को एक पंक्ति. 399 00:19:24,270 --> 00:19:25,450 >> मैं कैसे पता है? 400 00:19:25,450 --> 00:19:27,990 ठीक है, मैं इस समारोह का उपयोग कर रहा हूँ fprintf कहा जाता है. 401 00:19:27,990 --> 00:19:30,970 आप का उपयोग किया जाएगा कार्यों के सभी , के लिए लिख या से, या पढ़ते समय 402 00:19:30,970 --> 00:19:34,950 फ़ाइलें जोड़ तोड़ के समान हो जाएगा तुम से पहले देखा है, लेकिन कार्यों 403 00:19:34,950 --> 00:19:38,420 पत्र एफ के साथ शुरू, फाइल के लिए खड़ी है. 404 00:19:38,420 --> 00:19:43,440 और fprintf, हमारे सामान्य प्रिंट के विपरीत अनुप्रयोग, एक अतिरिक्त तर्क लेता है, 405 00:19:43,440 --> 00:19:47,800 और उस फ़ाइल है जहां आप इस पंक्ति मुद्रित करना चाहते हैं. 406 00:19:47,800 --> 00:19:50,640 >> मैं करने के लिए कुछ भी नहीं है ohai का अधिकार. 407 00:19:50,640 --> 00:19:52,860 मैं तीसरे की जरूरत नहीं है printf के लिए तर्क - 408 00:19:52,860 --> 00:19:57,030 या दूसरा तर्क printf के लिए, तीसरा तर्क fprintf के लिए, क्योंकि मैं 409 00:19:57,030 --> 00:19:59,480 यहां किसी भी प्लेसहोल्डर्स नहीं है. 410 00:19:59,480 --> 00:20:01,070 मैं किसी भी चर सहित नहीं कर रहा हूँ. 411 00:20:01,070 --> 00:20:06,070 लेकिन फिर, fprintf और इन फ़ाइल के सभी फाइलों के साथ काम करते हैं कि कार्यों 412 00:20:06,070 --> 00:20:09,820 आम तौर पर फाइल की जरूरत जा रहे हैं जिस पर वे काम कर रहे हैं. 413 00:20:09,820 --> 00:20:15,960 >> अंत में, पिछले महत्वपूर्ण बात करने के लिए बस पसंद नहीं है, फाइल बंद करने के लिए है 414 00:20:15,960 --> 00:20:19,530 साथ - हम कुछ malloc जब भी, हम हम ऐसा न हो, कुछ को मुक्त करना चाहते हैं 415 00:20:19,530 --> 00:20:22,730 एक स्मृति रिसाव है - हम चाहते हैं हमारे फाइल बंद करने के लिए. 416 00:20:22,730 --> 00:20:28,180 इस कार्यक्रम के समापन के बिना बाहर निकल गया तो फ़ाइल, बाधाओं कुछ भी नहीं जाना होगा रहे हैं 417 00:20:28,180 --> 00:20:30,050 गलत, विशेष रूप से अगर यह एक छोटी सी फाइल था. 418 00:20:30,050 --> 00:20:35,020 >> लेकिन यह निश्चित रूप से अच्छा कोडन शैली है और हमेशा अपनी फाइल बंद करने के लिए अभ्यास 419 00:20:35,020 --> 00:20:38,050 आप यह प्रयोग पूरा हो जाए तो. 420 00:20:38,050 --> 00:20:43,630 तो उस फ़ाइल की मूल बातें मैं / ओ है तुम्हें शायद पहले कि देखा, या किया है 421 00:20:43,630 --> 00:20:45,710 कि शानदार संक्षेप में इसे देखा. 422 00:20:45,710 --> 00:20:48,410 किसी को भी करने से पहले, किसी भी सवाल है हम कुछ अभ्यास कोडिंग में जाने 423 00:20:48,410 --> 00:20:51,800 फाइल के बारे में समस्याओं, मैं / हे या कदम मैं बस खत्म हो गया था? 424 00:20:51,800 --> 00:21:00,198 425 00:21:00,198 --> 00:21:03,162 >> [टाइपिंग ध्वनियों] 426 00:21:03,162 --> 00:21:04,150 >> जेसन Hirschhorn: क्या आप एक सवाल, AVI है? 427 00:21:04,150 --> 00:21:04,660 >> AVI: नहीं 428 00:21:04,660 --> 00:21:04,740 >> जेसन Hirschhorn: ठीक है. 429 00:21:04,740 --> 00:21:06,746 मैं एक और प्रतीक्षा करने के लिए जा रहा हूँ सात सेकंड. 430 00:21:06,746 --> 00:21:07,590 [हंसते हुए] 431 00:21:07,590 --> 00:21:08,620 यह एक बहुत अच्छा संकेत है. 432 00:21:08,620 --> 00:21:10,750 तुम लोग पसंद नहीं करते सवाल पूछ रहे हैं. 433 00:21:10,750 --> 00:21:11,660 यह ठीक है. 434 00:21:11,660 --> 00:21:12,330 ठीक है. 435 00:21:12,330 --> 00:21:17,620 इसलिए हमारा पहला अभ्यास समस्या हम कर रहे हैं, है समारोह की नकल करने के लिए जा रहा 436 00:21:17,620 --> 00:21:22,330 एक कमांड लाइन उपकरण है कि आप शायद कॉपी - पहले प्रयोग किया - 437 00:21:22,330 --> 00:21:23,500 नकल उपकरण. 438 00:21:23,500 --> 00:21:28,050 आप सी.पी. टाइप करें और फिर इसे पारित तो दो अपने टर्मिनल में तर्क, आप कर सकते हैं 439 00:21:28,050 --> 00:21:28,980 एक फाइल कॉपी. 440 00:21:28,980 --> 00:21:31,220 और कहा कि हम जा रहे हैं अब सही लिखने के लिए. 441 00:21:31,220 --> 00:21:35,830 >> तो फिर, इस स्लाइड के बंद को पढ़ने, मैं हूँ आपको लगता है कि एक प्रोग्राम लिखने के लिए 442 00:21:35,830 --> 00:21:38,130 दो और दो कमांड लाइन ही तर्क - 443 00:21:38,130 --> 00:21:40,750 एक स्रोत फ़ाइल और गंतव्य फ़ाइल - 444 00:21:40,750 --> 00:21:44,590 और प्रतियां स्रोत की सामग्री गंतव्य फ़ाइल के लिए फ़ाइल 445 00:21:44,590 --> 00:21:46,960 एक समय में एक बाइट. 446 00:21:46,960 --> 00:21:48,510 तो उस के लिए पूछने के लिए एक बहुत कुछ है. 447 00:21:48,510 --> 00:21:52,200 >> फिर, यह एक अच्छा तरीका है सी कोड के लिए सीधे जाओ, लेकिन नहीं 448 00:21:52,200 --> 00:21:54,280 कदम के एक जोड़े में टूट. 449 00:21:54,280 --> 00:21:58,400 सबसे पहले, तर्क के बारे में सोचने - बिल्कुल मैं क्या करने के लिए कह रहा हूँ - 450 00:21:58,400 --> 00:22:00,620 और सभी को समझ इस समस्या के लिए कदम उठाए. 451 00:22:00,620 --> 00:22:04,410 नहीं सी में, बस कुछ pseudocode में, या यहां तक ​​कि एक मानसिक मॉडल 452 00:22:04,410 --> 00:22:06,030 क्या हो रहा है. 453 00:22:06,030 --> 00:22:10,050 >> इसके बाद, आप pseudocode नीचे है एक बार, यह पता लगाने कैसे pseudocode 454 00:22:10,050 --> 00:22:14,600 उपकरण और हम है कि चीजों पर नक्शे सी. में उपयोग करने के लिए सीखा 455 00:22:14,600 --> 00:22:19,070 >> और अंत में, एक बार आप सभी कि है एक साथ, आप समस्या कोड कर सकते हैं. 456 00:22:19,070 --> 00:22:23,370 करने के लिए 5 से 10 मिनट ले लो इस समस्या पर काम करते हैं. 457 00:22:23,370 --> 00:22:25,800 मैं निर्देश डाल देता हूँ वापस एक दूसरे में. 458 00:22:25,800 --> 00:22:27,990 और फिर हम पर जाने के लिए जा रहे हैं pseudocode, और कोड 459 00:22:27,990 --> 00:22:29,230 यह एक समूह के रूप में रहते हैं. 460 00:22:29,230 --> 00:22:31,640 >> आप कर रहे हैं, जबकि आप कोई प्रश्न हैं इस पर काम कर रहे बढ़ाने के लिए स्वतंत्र महसूस 461 00:22:31,640 --> 00:22:34,260 अपने हाथ, और मैं आ जाएगा चारों ओर और उन्हें जवाब. 462 00:22:34,260 --> 00:22:37,020 463 00:22:37,020 --> 00:22:39,330 >> छात्र 7: मैं कड़ी चोट कर सकते कागज के एक टुकड़े? 464 00:22:39,330 --> 00:22:41,537 >> जेसन Hirschhorn: क्या चल रहा है? 465 00:22:41,537 --> 00:26:46,047 466 00:26:46,047 --> 00:26:48,043 >> [टाइपिंग ध्वनियों] 467 00:26:48,043 --> 00:26:48,730 >> जेसन Hirschhorn: ठीक है. 468 00:26:48,730 --> 00:26:51,710 की पहली pseudocode पर चलते हैं, और तो मैं आपको एक जोड़े को और अधिक देता हूँ 469 00:26:51,710 --> 00:26:52,960 मिनट कोडिंग खत्म करने के लिए. 470 00:26:52,960 --> 00:26:55,540 471 00:26:55,540 --> 00:26:58,650 >> कौन मुझ पर से शुरू करना चाहते हैं की पहली पंक्ति के साथ 472 00:26:58,650 --> 00:27:00,030 इस समारोह के लिए pseudocode? 473 00:27:00,030 --> 00:27:03,330 474 00:27:03,330 --> 00:27:05,740 >> छात्र 8: सुनिश्चित करने के लिए जाँच करें आप दो फ़ाइलों को दिए गए थे. 475 00:27:05,740 --> 00:27:06,990 >> जेसन Hirschhorn: ठीक है. 476 00:27:06,990 --> 00:27:21,270 477 00:27:21,270 --> 00:27:22,990 और हम नहीं कर रहे हैं? 478 00:27:22,990 --> 00:27:25,974 >> छात्र 8: मैं 0 वापस कर देगा. 479 00:27:25,974 --> 00:27:27,872 >> जेसन Hirschhorn: हम 0 वापसी करना चाहिए? 480 00:27:27,872 --> 00:27:30,182 >> छात्र 8: एक वापसी - 481 00:27:30,182 --> 00:27:30,650 blanking. 482 00:27:30,650 --> 00:27:30,850 माफ़ कीजिए. 483 00:27:30,850 --> 00:27:31,210 >> जेसन Hirschhorn: हाँ. 484 00:27:31,210 --> 00:27:32,710 शायद नहीं 0. 485 00:27:32,710 --> 00:27:34,680 0 सब कुछ अच्छा था क्योंकि इसका मतलब है. 486 00:27:34,680 --> 00:27:35,030 ठीक है. 487 00:27:35,030 --> 00:27:36,730 तो यह है कि पहली पंक्ति है pseudocode की. 488 00:27:36,730 --> 00:27:38,715 कौन pseudocode की दूसरी पंक्ति है? 489 00:27:38,715 --> 00:27:40,630 >> छात्र 9: फ़ाइलें दोनों खुला? 490 00:27:40,630 --> 00:27:41,880 >> जेसन Hirschhorn: दोनों फ़ाइलों को खोलें. 491 00:27:41,880 --> 00:27:49,970 492 00:27:49,970 --> 00:27:50,920 ठीक है? 493 00:27:50,920 --> 00:27:52,850 >> छात्र 10: जांच देखने के लिए फ़ाइल रिक्त है? 494 00:27:52,850 --> 00:28:10,906 495 00:28:10,906 --> 00:28:12,580 >> जेसन Hirschhorn: बनाने की जाँच करें यकीन रिक्त हैं भी नहीं. 496 00:28:12,580 --> 00:28:15,800 एक अलग रूप में - 497 00:28:15,800 --> 00:28:17,540 0 स्लैश - 498 00:28:17,540 --> 00:28:18,887 कि नल है? 499 00:28:18,887 --> 00:28:20,080 >> छात्र 11: नहीं 500 00:28:20,080 --> 00:28:21,190 >> जेसन Hirschhorn: यह रिक्त नहीं है. 501 00:28:21,190 --> 00:28:23,400 यही रिक्त टर्मिनेटर कहा जाता है. 502 00:28:23,400 --> 00:28:25,580 यह वास्तव में केवल एक ही एल के साथ वर्तनी है. 503 00:28:25,580 --> 00:28:28,580 तो उस के खिलाफ कुछ जाँच - कि वास्तव में एक चरित्र है - 504 00:28:28,580 --> 00:28:31,710 तो उस के खिलाफ कुछ है की जाँच देखने के लिए जाँच के रूप में ही नहीं अगर यह 505 00:28:31,710 --> 00:28:32,690 नल के बराबर होती है. 506 00:28:32,690 --> 00:28:34,100 >> और कुछ लोगों को - 507 00:28:34,100 --> 00:28:36,040 उनकी परीक्षाएँ और उनकी समस्या पर सेट - मिल गया है 508 00:28:36,040 --> 00:28:36,890 उलझन में उन में से दो. 509 00:28:36,890 --> 00:28:38,830 लेकिन उन में से दो हैं विभिन्न वास्तव में. 510 00:28:38,830 --> 00:28:40,220 एक एक स्ट्रिंग समाप्त होता है - 511 00:28:40,220 --> 00:28:43,210 एक 0 करने के लिए एक सूचक है. 512 00:28:43,210 --> 00:28:46,490 >> छात्र 12: क्यों आप की जांच नहीं होगी फाइलें रिक्त नहीं हैं सुनिश्चित करें 513 00:28:46,490 --> 00:28:48,670 आप उन्हें खोलने से पहले? 514 00:28:48,670 --> 00:28:54,772 >> जेसन Hirschhorn: तो खुला बचाता है कि फाइल में कुछ. 515 00:28:54,772 --> 00:28:57,780 और तुम यहाँ वापस जाओ - 516 00:28:57,780 --> 00:28:59,520 इसलिए इस लाइन - fopen - 517 00:28:59,520 --> 00:29:05,300 आप एक पते और दुकान दे देंगे अगर यह काम करता फ़ाइल में है कि पता. 518 00:29:05,300 --> 00:29:07,650 यह काम नहीं करता है, तो यह नल की दुकान होगी - 519 00:29:07,650 --> 00:29:08,020 >> छात्र 12: ओह. 520 00:29:08,020 --> 00:29:08,180 ठीक है. 521 00:29:08,180 --> 00:29:08,500 आप समझे. 522 00:29:08,500 --> 00:29:09,050 >> जेसन Hirschhorn: फ़ाइल में. 523 00:29:09,050 --> 00:29:11,990 तो आप नल के लिए जाँच नहीं कर सकते आप उन्हें खोल दिया है पहले. 524 00:29:11,990 --> 00:29:13,520 नल कुछ नहीं किया है सही ढंग से काम करते हैं. 525 00:29:13,520 --> 00:29:18,030 526 00:29:18,030 --> 00:29:18,740 ठीक है. 527 00:29:18,740 --> 00:29:22,590 तो सुनिश्चित करें कि न तो बनाने की जांच? 528 00:29:22,590 --> 00:29:23,200 या कर रहे हैं? 529 00:29:23,200 --> 00:29:23,770 हम क्या सोचते हैं? 530 00:29:23,770 --> 00:29:24,310 हम उस के साथ जाना होगा. 531 00:29:24,310 --> 00:29:24,520 >> छात्र 13: है. 532 00:29:24,520 --> 00:29:25,020 >> जेसन Hirschhorn: है? 533 00:29:25,020 --> 00:29:25,930 न तो? 534 00:29:25,930 --> 00:29:26,350 >> छात्र 13: है. 535 00:29:26,350 --> 00:29:26,390 >> जेसन Hirschhorn: ठीक है. 536 00:29:26,390 --> 00:29:28,510 हम कुछ है लगता है उस पर आम सहमति. 537 00:29:28,510 --> 00:29:30,520 नल है न तो. 538 00:29:30,520 --> 00:29:32,250 ठीक है, pseudocode की अगली पंक्ति. 539 00:29:32,250 --> 00:29:33,600 जो अभी तक मुझे एक लाइन नहीं दिया है? 540 00:29:33,600 --> 00:29:37,350 541 00:29:37,350 --> 00:29:38,295 हम आप के लिए इंतजार करेंगे. 542 00:29:38,295 --> 00:29:39,020 हाँ. 543 00:29:39,020 --> 00:29:40,895 >> छात्र 14: आप पढ़ने के लिए पहली फ़ाइल से? 544 00:29:40,895 --> 00:29:42,290 >> जेसन Hirschhorn: ठीक है. 545 00:29:42,290 --> 00:29:46,240 >> छात्र 14: या हम fscanf उपयोग या कि पहले फाइल की तरह कुछ? 546 00:29:46,240 --> 00:29:50,650 >> जेसन Hirschhorn: तो हम करना चाहते हैं पहली फ़ाइल से पढ़ने और - 547 00:29:50,650 --> 00:29:51,900 यहीं कि डाल दिया. 548 00:29:51,900 --> 00:30:00,600 549 00:30:00,600 --> 00:30:01,880 स्रोत फ़ाइल से पढ़ें. 550 00:30:01,880 --> 00:30:05,370 और फिर, हम के बाद हम क्या करते हैं स्रोत फ़ाइल से पढ़ा है? 551 00:30:05,370 --> 00:30:06,620 कोई और? 552 00:30:06,620 --> 00:30:09,150 553 00:30:09,150 --> 00:30:12,190 >> छात्र 15: लिखें में गंतव्य फ़ाइल? 554 00:30:12,190 --> 00:30:22,080 555 00:30:22,080 --> 00:30:25,620 >> जेसन Hirschhorn: हम करने के लिए लिख गंतव्य फ़ाइल, और - 556 00:30:25,620 --> 00:30:26,210 ठीक है. 557 00:30:26,210 --> 00:30:30,030 हम और क्या याद आ रही है? 558 00:30:30,030 --> 00:30:32,460 मुझे एक नहीं दिया है जो किसी और को अभी तक कोड की लाइन - pseudocode की. 559 00:30:32,460 --> 00:30:33,510 हाँ. 560 00:30:33,510 --> 00:30:36,540 >> छात्र 16: शायद आप हमेशा जाँच कर सकते हैं चाहे के लिए पढ़ने के लिए कुछ है, 561 00:30:36,540 --> 00:30:37,970 अगली पंक्ति की तरह? 562 00:30:37,970 --> 00:30:39,550 अगली पंक्ति की तरह हैं, अगर यह मौजूद है देखते हैं. 563 00:30:39,550 --> 00:30:40,660 >> [इलेक्ट्रॉनिक बीप] 564 00:30:40,660 --> 00:30:41,095 >> जेसन Hirschhorn: उफ़. 565 00:30:41,095 --> 00:30:43,120 वह मेरी journaling सॉफ्टवेयर है. 566 00:30:43,120 --> 00:30:43,580 हाँ? 567 00:30:43,580 --> 00:30:44,960 >> छात्र 16: हाँ. 568 00:30:44,960 --> 00:30:48,940 >> जेसन Hirschhorn: तो दे यह मेरे लिए एक बार. 569 00:30:48,940 --> 00:30:51,640 >> छात्र 16: है कि क्या वहाँ की जाँच करें से अभी भी एक अगली पंक्ति 570 00:30:51,640 --> 00:30:52,920 पढ़ने के लिए स्रोत फ़ाइल. 571 00:30:52,920 --> 00:30:53,500 >> जेसन Hirschhorn: ठीक है. 572 00:30:53,500 --> 00:30:56,060 इसलिए हम लाइनों पढ़ नहीं रहे हैं - यहाँ बाइट्स पढ़ रहे थे - 573 00:30:56,060 --> 00:30:57,590 लेकिन आप सही कर रहे हैं. 574 00:30:57,590 --> 00:31:00,040 हम जब तक पढ़ने और लिखने के लिए चाहते हैं कोई और अधिक बाइट्स कर रहे हैं. 575 00:31:00,040 --> 00:31:11,430 576 00:31:11,430 --> 00:31:11,735 ठीक है. 577 00:31:11,735 --> 00:31:16,940 और हां ये सच इंडेंट होना चाहिए एक सा है, वे वहाँ के तहत कर रहे हैं. 578 00:31:16,940 --> 00:31:17,470 है ना? 579 00:31:17,470 --> 00:31:20,620 हम बैट से बाहर रहे हैं, जब तक हम करने जा रहे हैं स्रोत फ़ाइल से पढ़ने और लिखने 580 00:31:20,620 --> 00:31:22,160 गंतव्य फ़ाइल के लिए. 581 00:31:22,160 --> 00:31:24,510 >> और फिर, पिछले क्या है pseudocode की रेखा? 582 00:31:24,510 --> 00:31:26,380 नहीं दिया कोई है जो मुझे कुछ अभी तक. 583 00:31:26,380 --> 00:31:29,270 584 00:31:29,270 --> 00:31:30,260 >> छात्र 17: फ़ाइलें बंद करें? 585 00:31:30,260 --> 00:31:31,510 >> जेसन Hirschhorn: बिल्कुल. 586 00:31:31,510 --> 00:31:36,370 587 00:31:36,370 --> 00:31:37,450 फ़ाइलें बंद करें. 588 00:31:37,450 --> 00:31:38,400 इसलिए हमारे pseudocode नहीं है. 589 00:31:38,400 --> 00:31:41,870 मैं में pseudocode डाला जा रहा हूँ जीएडिट, और कुछ मिनट में हम 590 00:31:41,870 --> 00:31:44,626 एक साथ इस कोड होगा. 591 00:31:44,626 --> 00:33:55,280 592 00:33:55,280 --> 00:33:56,000 >> ठीक है. 593 00:33:56,000 --> 00:33:58,290 हमें एक समूह के रूप में शुरू हो जाओ. 594 00:33:58,290 --> 00:33:59,940 निशांत, मैं अपने नए फ़ाइल है. 595 00:33:59,940 --> 00:34:01,130 मैं सिर्फ इस खोल दिया है. 596 00:34:01,130 --> 00:34:01,880 शीर्षकहीन दस्तावेज़ 1. 597 00:34:01,880 --> 00:34:05,490 मुझे क्या करना चाहिए पहली बात क्या है? 598 00:34:05,490 --> 00:34:07,040 >> निशांत: पुस्तकालयों को शामिल करें? 599 00:34:07,040 --> 00:34:08,219 >> जेसन Hirschhorn: ठीक है. 600 00:34:08,219 --> 00:34:11,070 क्या पुस्तकालयों? 601 00:34:11,070 --> 00:34:17,570 >> निशांत: stdio.h, stdlib.h, मुझे विश्वास है? 602 00:34:17,570 --> 00:34:18,000 >> जेसन Hirschhorn: ठीक है. 603 00:34:18,000 --> 00:34:21,592 के लिए stdlib क्या है? 604 00:34:21,592 --> 00:34:23,010 >> निशांत: मैं भूल गया था. 605 00:34:23,010 --> 00:34:23,219 >> जेसन Hirschhorn: ठीक है. 606 00:34:23,219 --> 00:34:24,179 तो stdio शामिल हैं. 607 00:34:24,179 --> 00:34:28,630 मैं भी पहले क्या करना चाहिए मैं कोडन शुरू? 608 00:34:28,630 --> 00:34:29,710 >> निशांत: एक शीर्ष लेख लिखें? 609 00:34:29,710 --> 00:34:31,830 >> जेसन Hirschhorn: कैसे यह रंग मैं मिलता है? 610 00:34:31,830 --> 00:34:34,060 >> [INTERPOSING आवाज़ें] 611 00:34:34,060 --> 00:34:35,040 >> निशांत: आप कैसे यह रंग मिलता है? 612 00:34:35,040 --> 00:34:38,060 >> जेसन Hirschhorn: कैसे मैं कोडिंग के रंग? 613 00:34:38,060 --> 00:34:38,570 >> निशांत: मुझे नहीं पता. 614 00:34:38,570 --> 00:34:38,830 ओह. 615 00:34:38,830 --> 00:34:39,389 सहेजें. 616 00:34:39,389 --> 00:34:39,929 >> जेसन Hirschhorn: सहेजें. 617 00:34:39,929 --> 00:34:40,270 हां. 618 00:34:40,270 --> 00:34:41,760 मैं एक. सी के रूप में इसे बचाना चाहिए. 619 00:34:41,760 --> 00:34:46,239 तो cp.c. के रूप में डेस्कटॉप पर सहेजें 620 00:34:46,239 --> 00:34:47,280 मीठा. 621 00:34:47,280 --> 00:34:51,199 और मैं पूर्ण शैली प्राप्त करना चाहते हैं अंक, क्या करना चाहिए मैं 622 00:34:51,199 --> 00:34:53,085 शीर्ष पर शामिल हैं? 623 00:34:53,085 --> 00:34:58,390 >> निशांत: आप अपने नाम, नाम लिख सकता है कार्यक्रम, और उद्देश्य की 624 00:34:58,390 --> 00:34:59,640 साथ ही कार्यक्रम की? 625 00:34:59,640 --> 00:35:08,400 626 00:35:08,400 --> 00:35:10,040 >> जेसन Hirschhorn: अच्छा लग रहा है. 627 00:35:10,040 --> 00:35:10,470 बहुत बढ़िया. 628 00:35:10,470 --> 00:35:12,940 तो आप पूरी तरह से हमें बंद करना शुरू कर दिया है. 629 00:35:12,940 --> 00:35:13,720 # शामिल - 630 00:35:13,720 --> 00:35:15,365 हम भी लिख देता हूँ - 631 00:35:15,365 --> 00:35:30,050 632 00:35:30,050 --> 00:35:30,870 ठीक है. 633 00:35:30,870 --> 00:35:33,520 इसलिए मुझे लगता है मैं सभी जाने के लिए तैयार हूँ लगता है. 634 00:35:33,520 --> 00:35:38,003 कौन मेरे लिए कोड की पहली पंक्ति है - या कोड के पहले लाइनों कि 635 00:35:38,003 --> 00:35:41,280 यह हमारी पहली संतुष्ट करने के लिए ले जाएगा pseudocode में टिप्पणी है? 636 00:35:41,280 --> 00:35:41,985 तुम. 637 00:35:41,985 --> 00:35:48,780 >> छात्र 18: यह INT नहीं होना चाहिए argc, और फिर चार * argv? 638 00:35:48,780 --> 00:35:49,490 >> जेसन Hirschhorn: मुझे लगता है कि आप ठीक कह रहे हैं. 639 00:35:49,490 --> 00:35:56,270 चलो यह मुख्य, खुला paren int को बदलते हैं, INT argc, अल्पविराम, चार * argv? 640 00:35:56,270 --> 00:35:57,150 ऐसे ही? 641 00:35:57,150 --> 00:35:57,410 >> छात्र 18: कोष्ठक. 642 00:35:57,410 --> 00:35:58,260 >> जेसन Hirschhorn: कोष्ठक. 643 00:35:58,260 --> 00:35:59,860 ओपन वर्ग, करीब ब्रैकेट, करीब जनक. 644 00:35:59,860 --> 00:36:00,240 बिल्कुल सही. 645 00:36:00,240 --> 00:36:02,160 अब मैं कमांड लाइन तर्क ले जा सकते हैं. 646 00:36:02,160 --> 00:36:02,430 ठीक है. 647 00:36:02,430 --> 00:36:04,250 हम दो फाइलें दिया हो यह सुनिश्चित करें. 648 00:36:04,250 --> 00:36:07,905 आप के रूप में अच्छी तरह से मुझे लगता है कि दे सकता है. 649 00:36:07,905 --> 00:36:09,180 >> छात्र 18: argc हैं - 650 00:36:09,180 --> 00:36:11,060 इस एक 3 बराबर नहीं है. 651 00:36:11,060 --> 00:36:14,360 >> जेसन Hirschhorn: यदि खुला कोष्ठक 3 argc बराबर नहीं है? 652 00:36:14,360 --> 00:36:16,970 >> छात्र 18: हाँ, तुम वापस 1 या कुछ भी. 653 00:36:16,970 --> 00:36:17,460 >> जेसन Hirschhorn: क्षमा करें. 654 00:36:17,460 --> 00:36:19,120 >> छात्र 18: वापसी 1 या कुछ भी. 655 00:36:19,120 --> 00:36:20,270 >> जेसन Hirschhorn: 1 लौटें. 656 00:36:20,270 --> 00:36:22,230 ठीक है? 657 00:36:22,230 --> 00:36:22,970 ग्रेट. 658 00:36:22,970 --> 00:36:24,290 दोनों फ़ाइलों को खोलें. 659 00:36:24,290 --> 00:36:26,160 कौन मुझे दोनों फ़ाइलों को खोलने में मदद कर सकते हैं? 660 00:36:26,160 --> 00:36:28,125 जो अभी तक मेरे कोड नहीं दिया है? 661 00:36:28,125 --> 00:36:31,510 662 00:36:31,510 --> 00:36:32,320 कर्ट? 663 00:36:32,320 --> 00:36:36,145 >> कर्ट: इतना सब टोपियां एफ मैं एल ई सितारा स्रोत. 664 00:36:36,145 --> 00:36:39,390 665 00:36:39,390 --> 00:36:40,920 >> जेसन Hirschhorn: मैं जा रहा हूँ स्वर बाहर ले जाना. 666 00:36:40,920 --> 00:36:41,570 उन शांत कर रहे हैं. 667 00:36:41,570 --> 00:36:42,716 यह Tumblr की तरह है. 668 00:36:42,716 --> 00:36:44,610 >> छात्र 18: fopen बराबरी - 669 00:36:44,610 --> 00:36:46,612 >> जेसन Hirschhorn: fopen बराबरी? 670 00:36:46,612 --> 00:36:49,870 >> छात्र 18: खुला कोष्ठक, argv, खुला ब्रैकेट. 671 00:36:49,870 --> 00:36:50,055 >> जेसन Hirschhorn: रुको. 672 00:36:50,055 --> 00:36:50,240 माफ़ कीजिए. 673 00:36:50,240 --> 00:36:51,050 ओपन कोष्ठक. 674 00:36:51,050 --> 00:36:51,456 ठीक है. 675 00:36:51,456 --> 00:36:53,080 >> छात्र 18: हाँ. 676 00:36:53,080 --> 00:36:55,110 Argv उप 1. 677 00:36:55,110 --> 00:36:55,860 >> जेसन Hirschhorn: उप 1? 678 00:36:55,860 --> 00:36:56,140 >> छात्र 18: हाँ. 679 00:36:56,140 --> 00:36:58,540 Argv खुला ब्रैकेट 1 - 680 00:36:58,540 --> 00:36:59,730 हां. 681 00:36:59,730 --> 00:37:06,470 और फिर अल्पविराम, और फिर खुला डबल बोली, आर, डबल बोली, 682 00:37:06,470 --> 00:37:08,250 करीब कोष्ठक, अर्धविराम. 683 00:37:08,250 --> 00:37:09,450 >> जेसन Hirschhorn: मीठा. 684 00:37:09,450 --> 00:37:10,950 और क्या एक दूसरे के बारे में क्या? 685 00:37:10,950 --> 00:37:16,030 >> छात्र 18: बहुत समान है, लेकिन बदले एस आर सी के, D-एस टी यह फोन था. 686 00:37:16,030 --> 00:37:17,060 >> जेसन Hirschhorn: ऊ! 687 00:37:17,060 --> 00:37:17,772 मुझे अच्छा लगा. 688 00:37:17,772 --> 00:37:20,010 >> छात्र 18: बस डी एस टी. हाँ. 689 00:37:20,010 --> 00:37:23,057 और फिर,, 2 खुले ब्रैकेट argv. 690 00:37:23,057 --> 00:37:23,200 हाँ. 691 00:37:23,200 --> 00:37:26,720 और फिर डब्ल्यू बजाय आर. 692 00:37:26,720 --> 00:37:27,620 हाँ. 693 00:37:27,620 --> 00:37:29,630 >> जेसन Hirschhorn: महान. 694 00:37:29,630 --> 00:37:31,360 लाइनों के अगले कुछ. 695 00:37:31,360 --> 00:37:34,040 इसके अलावा, किसी को जोड़ने के लिए काम किया है, तो हम किया है कि लाइनों, करने के लिए स्वतंत्र महसूस 696 00:37:34,040 --> 00:37:35,690 साथ ही उन जोड़ने. 697 00:37:35,690 --> 00:37:37,520 यकीन न तो नल है बनाने की जाँच करें. 698 00:37:37,520 --> 00:37:41,450 कौन मुझे मैं जरूरत कोड दे सकते हैं pseudocode की उस रेखा को संतुष्ट? 699 00:37:41,450 --> 00:37:44,430 700 00:37:44,430 --> 00:37:45,870 आर्चर. 701 00:37:45,870 --> 00:37:58,645 >> आर्चर: स्रोत के बराबर होती हैं अशक्त या डीएसटी के बराबर होती है 702 00:37:58,645 --> 00:38:04,590 नल, तो आप वापस आ - 703 00:38:04,590 --> 00:38:07,130 704 00:38:07,130 --> 00:38:07,976 >> जेसन Hirschhorn: क्या? 705 00:38:07,976 --> 00:38:08,890 >> आर्चर: 2 वापसी? 706 00:38:08,890 --> 00:38:09,760 >> जेसन Hirschhorn: 2 लौटें. 707 00:38:09,760 --> 00:38:14,400 इतना खुला कोष्ठक स्रोत के बराबर होती है अगर नल के बराबर होती है, या - 708 00:38:14,400 --> 00:38:15,590 कि thing's जो कुछ - पाइप? 709 00:38:15,590 --> 00:38:16,346 पाइप? 710 00:38:16,346 --> 00:38:17,140 हम पाइप यह फोन करता हूँ. 711 00:38:17,140 --> 00:38:22,340 पाइप, पाइप, डीएसटी के बराबर होती है नल, 2 वापसी. 712 00:38:22,340 --> 00:38:23,900 ठीक है? 713 00:38:23,900 --> 00:38:26,060 हम बैट से बाहर रहे हैं जब तक - 714 00:38:26,060 --> 00:38:29,820 हम की तरह से इस कदम पर छोड़ दिया यहाँ करने के लिए जा रहा करने के लिए pseudocode हिस्सा. 715 00:38:29,820 --> 00:38:31,970 >> लेकिन जब तक हम बैट से बाहर रहे हैं - कि ध्वनि की तरह क्या करता है? 716 00:38:31,970 --> 00:38:34,680 सी संरचना किस प्रकार है - 717 00:38:34,680 --> 00:38:36,160 लेकिन मैं शब्द संरचना का उपयोग नहीं करते, हम प्रयोग शुरू करने जा रहे हैं, क्योंकि 718 00:38:36,160 --> 00:38:37,350 कि अन्य मामलों में - 719 00:38:37,350 --> 00:38:39,495 लेकिन सी उपकरण की तरह है कि ध्वनि करता है? 720 00:38:39,495 --> 00:38:39,970 >> छात्र 19: एक पाश. 721 00:38:39,970 --> 00:38:40,980 >> जेसन Hirschhorn: एक पाश. 722 00:38:40,980 --> 00:38:43,060 एक लूप की तरह लगता है. 723 00:38:43,060 --> 00:38:49,670 तो जो मुझे पहली पंक्ति दे सकते हैं यहीं पाश कोड का? 724 00:38:49,670 --> 00:38:56,320 725 00:38:56,320 --> 00:39:01,980 आप यह भी चुन सकते हैं किस तरह का आप मुझे दे लूप यदि आप चाहते हैं 726 00:39:01,980 --> 00:39:03,215 कोड की इस पंक्ति. 727 00:39:03,215 --> 00:39:04,150 तीन प्रकार के होते हैं. 728 00:39:04,150 --> 00:39:06,530 आप लेने के लिए मिलता है. 729 00:39:06,530 --> 00:39:08,080 मैं उन में से एक सुझाव है. 730 00:39:08,080 --> 00:39:08,410 Avi. 731 00:39:08,410 --> 00:39:09,230 जो एक तुम चाहते हो? 732 00:39:09,230 --> 00:39:09,960 >> AVI के लिए:. 733 00:39:09,960 --> 00:39:11,460 >> जेसन Hirschhorn के लिए:. 734 00:39:11,460 --> 00:39:15,180 >> AVI: मैं शून्य के बराबर Int. 735 00:39:15,180 --> 00:39:17,360 >> जेसन Hirschhorn: ठीक है. 736 00:39:17,360 --> 00:39:18,570 >> AVI: मैं के बारे में यकीन नहीं है यह हिस्सा. 737 00:39:18,570 --> 00:39:29,080 लेकिन मैं आकार से कम है सितारा स्रोत की? 738 00:39:29,080 --> 00:39:31,128 मुझे इस बात का यकीन नहीं है. 739 00:39:31,128 --> 00:39:32,580 >> जेसन Hirschhorn: ठीक है. 740 00:39:32,580 --> 00:39:35,870 >> आप चाहते हैं: AVI एक फाइल का आकार, है ना? 741 00:39:35,870 --> 00:39:41,090 >> जेसन Hirschhorn: तो यह शायद नहीं होगी हमें वास्तविक का आकार दे 742 00:39:41,090 --> 00:39:43,010 बाइट्स में फ़ाइल. 743 00:39:43,010 --> 00:39:47,680 तो हम और क्या कर सकता है? 744 00:39:47,680 --> 00:39:48,810 पाश की एक अन्य प्रकार क्या है? 745 00:39:48,810 --> 00:39:50,180 या हम के लिए लूप के साथ रहना चाहिए? 746 00:39:50,180 --> 00:39:55,350 747 00:39:55,350 --> 00:39:57,900 >> छात्र 20: आप थोड़ी देर के पाश कर सकते हैं? 748 00:39:57,900 --> 00:40:01,350 और फिर, क्या आप करना चाहते हैं you'd है - 749 00:40:01,350 --> 00:40:03,930 हम फ़ाइल के लिए एक चार * है क्योंकि. 750 00:40:03,930 --> 00:40:07,950 हम सिर्फ incrementing रखना तो अगर कि हम नल चरित्र में पता था जब तक 751 00:40:07,950 --> 00:40:08,500 इसका अंत? 752 00:40:08,500 --> 00:40:11,130 या नहीं, फाइलें कैसे काम नहीं करता है? 753 00:40:11,130 --> 00:40:14,300 >> जेसन Hirschhorn: तो हम रख सकते हैं * चार incrementing 754 00:40:14,300 --> 00:40:16,340 हम नल लगता है जब तक - 755 00:40:16,340 --> 00:40:18,580 >> छात्र 20: अनिवार्य रूप से जा रहा रखने चरित्र से चरित्र हम मारा जब तक 756 00:40:18,580 --> 00:40:21,250 फ़ाइल का अंत. 757 00:40:21,250 --> 00:40:21,600 >> जेसन Hirschhorn: हाँ. 758 00:40:21,600 --> 00:40:22,560 तो यह है कि हम क्या करना चाहते है. 759 00:40:22,560 --> 00:40:24,545 हम पढ़ने, चरित्र रखना चाहते हैं चरित्र से, हम करने के लिए जब तक 760 00:40:24,545 --> 00:40:25,080 फ़ाइल का अंत. 761 00:40:25,080 --> 00:40:25,375 >> छात्र 20: हाँ. 762 00:40:25,375 --> 00:40:25,860 खोजें - 763 00:40:25,860 --> 00:40:28,540 अंत या बंद हस्ताक्षर क्या है एक पाठ फाइल के अंत में. 764 00:40:28,540 --> 00:40:28,620 >> जेसन Hirschhorn: ठीक है. 765 00:40:28,620 --> 00:40:30,140 इसलिए हम फ़ाइल का अंत करने के लिए जब - हम कैसे हम पहुँच चुके जानते हो 766 00:40:30,140 --> 00:40:33,200 एक फाइल के अंत? 767 00:40:33,200 --> 00:40:34,710 मैं बुला रहा हूँ तो - 768 00:40:34,710 --> 00:40:35,910 तो चलो वापस कदम चलो. 769 00:40:35,910 --> 00:40:37,550 एक समारोह में क्या है? 770 00:40:37,550 --> 00:40:39,360 यहीं इस लाइन के लिए चलते हैं. 771 00:40:39,360 --> 00:40:40,630 स्रोत फ़ाइल से पढ़ें. 772 00:40:40,630 --> 00:40:41,880 कौन मुझे कोड की लाइन दे सकता है? 773 00:40:41,880 --> 00:40:45,592 774 00:40:45,592 --> 00:40:47,590 >> छात्र 21: fscanf? 775 00:40:47,590 --> 00:40:49,110 >> जेसन Hirschhorn: fscanf. 776 00:40:49,110 --> 00:40:49,510 ठीक है. 777 00:40:49,510 --> 00:40:52,240 क्या मैं पढ़ना चाहते हैं, तो बहुत विशेष रूप से, एक बाइट? 778 00:40:52,240 --> 00:40:55,012 779 00:40:55,012 --> 00:40:56,860 >> छात्र 21: मुझे नहीं पता. 780 00:40:56,860 --> 00:40:57,110 >> जेसन Hirschhorn: ठीक है. 781 00:40:57,110 --> 00:40:59,380 Fscanf से भी सरल - एक क्या है - 782 00:40:59,380 --> 00:41:01,890 मैं एक स्रोत फ़ाइल से पढ़ने के लिए करना चाहते हैं? 783 00:41:01,890 --> 00:41:03,720 एक स्रोत फ़ाइल से पढ़ें. 784 00:41:03,720 --> 00:41:04,850 एक समारोह क्या है - हाँ. 785 00:41:04,850 --> 00:41:05,380 >> छात्र 22: यह fread है? 786 00:41:05,380 --> 00:41:06,070 >> जेसन Hirschhorn: fread. 787 00:41:06,070 --> 00:41:07,550 मैं के साथ छड़ी लगता है अब के लिए एक कि. 788 00:41:07,550 --> 00:41:10,380 789 00:41:10,380 --> 00:41:13,650 तर्क किस तरह का fread ले करता है? 790 00:41:13,650 --> 00:41:17,410 >> छात्र 22: शायद फाइल प्रकार, और फिर फ़ाइल का स्थान? 791 00:41:17,410 --> 00:41:19,550 >> जेसन Hirschhorn: मैं यहाँ किस प्रकार कर सकते हैं यह पता लगाने के लिए तर्क का क्या प्रकार 792 00:41:19,550 --> 00:41:20,950 fread लेता है? 793 00:41:20,950 --> 00:41:23,710 >> कई छात्रों: यार fread. 794 00:41:23,710 --> 00:41:24,740 >> जेसन Hirschhorn: यार fread और fwrite. 795 00:41:24,740 --> 00:41:25,980 वे एक साथ बाहर लटका की तरह लग रहा है. 796 00:41:25,980 --> 00:41:29,589 तो fread कितने तर्क लेता है? 797 00:41:29,589 --> 00:41:30,920 >> छात्र 23: चार. 798 00:41:30,920 --> 00:41:32,690 >> जेसन Hirschhorn: यह लेता है चार तर्क. 799 00:41:32,690 --> 00:41:41,100 यह एक सूचक, एक आकार लेता है, और है कि अजीब है जो बात है, और कुछ फाइल. 800 00:41:41,100 --> 00:41:42,000 ठीक है? 801 00:41:42,000 --> 00:41:43,990 यहीं इसके बारे में पढ़ा करते हैं. 802 00:41:43,990 --> 00:41:49,370 "समारोह fread n memb पढ़ता डेटा के तत्वों, हर आकार बाइट्स 803 00:41:49,370 --> 00:41:53,840 लंबे, धारा से द्वारा की ओर इशारा स्थान पर उन्हें भंडारण, धारा 804 00:41:53,840 --> 00:41:56,170 सूचक द्वारा दी गई. " 805 00:41:56,170 --> 00:41:57,960 >> तो चार तर्क. 806 00:41:57,960 --> 00:42:04,510 क्यों मैं सिर्फ यह की नकल नहीं है, और यहीं चिपकाएं. 807 00:42:04,510 --> 00:42:10,060 808 00:42:10,060 --> 00:42:10,770 ठीक है. 809 00:42:10,770 --> 00:42:13,673 तो जो बाहर भरने शुरू कर सकते हैं मेरे लिए ये तर्क? 810 00:42:13,673 --> 00:42:15,840 Avi. 811 00:42:15,840 --> 00:42:17,720 >> AVI: शून्य बाहर ले जाओ. 812 00:42:17,720 --> 00:42:20,530 बस स्रोत रखो. 813 00:42:20,530 --> 00:42:23,142 सूचक और स्टार ले लो. 814 00:42:23,142 --> 00:42:26,102 स्रोत रखो. 815 00:42:26,102 --> 00:42:27,050 तब - 816 00:42:27,050 --> 00:42:28,500 >> जेसन Hirschhorn: तो मैं बंद करने के लिए जा रहा हूँ वहाँ आप, यह गलत है क्योंकि. 817 00:42:28,500 --> 00:42:32,590 818 00:42:32,590 --> 00:42:34,710 आप स्रोत के साथ ठीक कह रहे हैं, लेकिन स्रोत: कहाँ जाना चाहिए? 819 00:42:34,710 --> 00:42:35,960 >> [INTERPOSING आवाज़ें] 820 00:42:35,960 --> 00:42:38,976 821 00:42:38,976 --> 00:42:41,610 >> जेसन Hirschhorn: यह चाहिए यहां पर चलते हैं. 822 00:42:41,610 --> 00:42:43,790 उस स्रोत है - हमारे स्रोत एक प्रकार है. 823 00:42:43,790 --> 00:42:44,610 चलो यहाँ देखते हैं. 824 00:42:44,610 --> 00:42:49,610 यह एक प्रकार की फ़ाइल * के लिए पूछ रहा है, हम वास्तव में आम तौर पर लगता है कि जैसे उन्हें देखते हैं. 825 00:42:49,610 --> 00:42:57,630 तो इस का एक तर्क के लिए पूछ रहा है * स्रोत है कि कहा जाता धारा फ़ाइल प्रकार. 826 00:42:57,630 --> 00:42:58,480 ठीक है? 827 00:42:58,480 --> 00:43:00,410 >> बातें करते हैं की क्या आकार हम पढ़ना चाहते हैं? 828 00:43:00,410 --> 00:43:03,340 मैं में आप यह दिया समस्या विवरण. 829 00:43:03,340 --> 00:43:04,370 >> छात्र 24: एक समय में एक बाइट. 830 00:43:04,370 --> 00:43:05,340 >> जेसन Hirschhorn: एक बाइट. 831 00:43:05,340 --> 00:43:08,205 एक बाइट कितना बड़ा है? 832 00:43:08,205 --> 00:43:11,642 इसका आकार बाइट्स में है, तो क्या हुआ मैं अभी वहाँ रख सकते हैं? 833 00:43:11,642 --> 00:43:12,910 >> छात्र के 25: एक. 834 00:43:12,910 --> 00:43:14,730 >> जेसन Hirschhorn: एक. 835 00:43:14,730 --> 00:43:17,020 ठीक है. 836 00:43:17,020 --> 00:43:19,940 इसका आकार इकाई बाइट में है, इसलिए 1 1 बाइट है. 837 00:43:19,940 --> 00:43:22,284 मैं एक समय में पढ़ने के लिए कितने चाहते हैं. 838 00:43:22,284 --> 00:43:23,520 >> छात्र 26: एक? 839 00:43:23,520 --> 00:43:24,270 >> जेसन Hirschhorn: एक बात. 840 00:43:24,270 --> 00:43:28,540 मैं आकार की एक बात को पढ़ने के लिए चाहते हैं 1, एक समय में एक टुकड़ा. 841 00:43:28,540 --> 00:43:32,110 मैंने इसे पढ़ा और एक बार जहाँ मैं इसे रखा है? 842 00:43:32,110 --> 00:43:35,050 843 00:43:35,050 --> 00:43:36,510 >> छात्र 27: गंतव्य? 844 00:43:36,510 --> 00:43:39,270 >> जेसन Hirschhorn: तो मैं नहीं डाल सकते हैं यह सीधे गंतव्य में. 845 00:43:39,270 --> 00:43:40,800 >> छात्र 28: तुम डाल रहे हैं यह एक तिहाई सूचक में? 846 00:43:40,800 --> 00:43:41,780 >> छात्र 27: गंतव्य के लिए. 847 00:43:41,780 --> 00:43:42,270 >> जेसन Hirschhorn: ठीक है. 848 00:43:42,270 --> 00:43:42,630 हाँ. 849 00:43:42,630 --> 00:43:46,820 >> छात्र 29: आप के लिए कुछ घोषणा कर सकते हैं एक अस्थायी भंडारण पहले के रूप में कार्य. 850 00:43:46,820 --> 00:43:47,350 >> जेसन Hirschhorn: ठीक है. 851 00:43:47,350 --> 00:43:50,080 मुझे दे. 852 00:43:50,080 --> 00:43:53,930 >> छात्र 29: एक और फाइल सूचक, हो सकता है? 853 00:43:53,930 --> 00:43:54,220 >> जेसन Hirschhorn: ठीक है. 854 00:43:54,220 --> 00:43:55,585 तो यह शून्य सितारा है - 855 00:43:55,585 --> 00:43:57,750 यह एक प्रकार का शून्य सितारा है, इसलिए यह नहीं है एक फ़ाइल सूचक होना है. 856 00:43:57,750 --> 00:44:02,520 और मैं एक बाइट पढ़ रहा हूँ, एक अच्छी जगह होगी जहां 857 00:44:02,520 --> 00:44:03,850 एक बाइट स्टोर करने के लिए? 858 00:44:03,850 --> 00:44:04,660 >> छात्र 29: एक सरणी? 859 00:44:04,660 --> 00:44:05,770 >> जेसन Hirschhorn: एक सरणी. 860 00:44:05,770 --> 00:44:07,730 ठीक है. 861 00:44:07,730 --> 00:44:14,040 और कुछ है कि और क्या है सिर्फ एक बाइट आकार? 862 00:44:14,040 --> 00:44:16,980 863 00:44:16,980 --> 00:44:18,060 >> छात्र 30: एक चार *? 864 00:44:18,060 --> 00:44:18,530 >> छात्र 29: हाँ. 865 00:44:18,530 --> 00:44:19,880 >> जेसन Hirschhorn: एक चार * एक बाइट नहीं है. 866 00:44:19,880 --> 00:44:20,440 >> छात्र 29: एक चार. 867 00:44:20,440 --> 00:44:21,810 >> जेसन Hirschhorn: एक चार एक बाइट है. 868 00:44:21,810 --> 00:44:22,920 है ना? 869 00:44:22,920 --> 00:44:26,740 तो चलो इस बफर कहते हैं एक सामान्य है स्टोर करने के लिए इन बातों के लिए उपयोग किया गया नाम 870 00:44:26,740 --> 00:44:27,910 कुछ अस्थायी रूप से. 871 00:44:27,910 --> 00:44:30,880 तो मैं एक बफर बनाने. 872 00:44:30,880 --> 00:44:31,150 है ना? 873 00:44:31,150 --> 00:44:32,990 लेकिन यह * एक शून्य ले करता है. 874 00:44:32,990 --> 00:44:38,660 तो शायद आप ठीक कह रहे हैं कि यह आकार 0 से बफर होना चाहिए. 875 00:44:38,660 --> 00:44:41,070 तो यह एक स्टोर - 876 00:44:41,070 --> 00:44:41,280 सही. 877 00:44:41,280 --> 00:44:43,560 >> क्योंकि यहां यह सही - चार बफर एक चरित्र है, लेकिन 878 00:44:43,560 --> 00:44:45,110 इस * एक शून्य लेता है - 879 00:44:45,110 --> 00:44:45,870 एक सूचक. 880 00:44:45,870 --> 00:44:50,640 तो अब मैं यह कर सकता है बफर एक सूचक है. 881 00:44:50,640 --> 00:44:53,214 मैं और क्या कर सकता है? 882 00:44:53,214 --> 00:44:55,775 >> छात्र 31: चार के बगल में एक सितारा रखो. 883 00:44:55,775 --> 00:44:58,380 >> जेसन Hirschhorn: मैं कर सकता यह * चार बनाया है. 884 00:44:58,380 --> 00:45:00,216 ठीक है. 885 00:45:00,216 --> 00:45:03,131 मैं कर सकता है एक और बात क्या है? 886 00:45:03,131 --> 00:45:04,050 या फिर इस एक साथ चलते हैं. 887 00:45:04,050 --> 00:45:05,740 चार * बफर, तो क्या हुआ मैं यहाँ में रखा है? 888 00:45:05,740 --> 00:45:08,290 889 00:45:08,290 --> 00:45:09,310 >> छात्र 31: बफर. 890 00:45:09,310 --> 00:45:10,560 >> जेसन Hirschhorn: बफर. 891 00:45:10,560 --> 00:45:12,640 892 00:45:12,640 --> 00:45:14,500 बफर एक चार के लिए एक संकेत है. 893 00:45:14,500 --> 00:45:19,480 और उस स्थान में, हम डाल रहे हैं हम पढ़ा है कुछ की एक बाइट. 894 00:45:19,480 --> 00:45:19,980 हाँ. 895 00:45:19,980 --> 00:45:20,700 Avi. 896 00:45:20,700 --> 00:45:21,230 >> AVI: बस एक त्वरित सवाल. 897 00:45:21,230 --> 00:45:24,440 आप बफर malloc करना चाहते हैं? 898 00:45:24,440 --> 00:45:25,930 >> जेसन Hirschhorn: कौन कर सकता है उस सवाल का जवाब? 899 00:45:25,930 --> 00:45:30,210 >> छात्र 32: खैर, यह सच नहीं अभी कुछ भी करने के लिए बिंदु, तो - 900 00:45:30,210 --> 00:45:32,610 >> जेसन Hirschhorn: लेकिन ऐसा हम यह malloc करना चाहते हैं? 901 00:45:32,610 --> 00:45:35,600 >> छात्र 32: आप यह कर रहे थे कि आप की जरूरत थी क्योंकि जिस तरह से, मैं, हाँ, लगता है 902 00:45:35,600 --> 00:45:36,990 यह करने के लिए बात करने के लिए कुछ जगह. 903 00:45:36,990 --> 00:45:38,350 >> जेसन Hirschhorn: हम करते हैं यह malloc के लिए है? 904 00:45:38,350 --> 00:45:40,580 >> छात्र 33: आप करने जा रहे हैं पाश के बाहर इसका इस्तेमाल. 905 00:45:40,580 --> 00:45:42,524 >> जेसन Hirschhorn: हम करने जा रहे हैं पाश के बाहर इसका इस्तेमाल? 906 00:45:42,524 --> 00:45:44,392 >> छात्र 34: हाँ. 907 00:45:44,392 --> 00:45:44,860 >> छात्र 35: रुको. 908 00:45:44,860 --> 00:45:46,980 हम यह घोषित करना चाहते हैं परे करने के लिए पाश में? 909 00:45:46,980 --> 00:45:50,100 >> जेसन Hirschhorn: तो मुझे लगता है हमें लगता है यहाँ हम कर रहे हैं कि कुछ छद्म जबकि पाश 910 00:45:50,100 --> 00:45:51,950 , यह पता लगाने की कोशिश कर रहा है कि हम अभी तक नहीं मिल गया है. 911 00:45:51,950 --> 00:45:54,710 912 00:45:54,710 --> 00:45:56,010 हम यह malloc की जरूरत नहीं है. 913 00:45:56,010 --> 00:45:59,310 हम मुख्य में काम कर रहे हैं, यह केवल जा रहा है इस लूप के अंदर इस्तेमाल किया जाएगा. 914 00:45:59,310 --> 00:46:00,540 यह अस्तित्व की जरूरत नहीं है इस बाहर. 915 00:46:00,540 --> 00:46:02,340 >> तो यह एक स्थानीय चर हो सकता है. 916 00:46:02,340 --> 00:46:03,925 आप एक संकेतक के लिए है एक स्थानीय चर. 917 00:46:03,925 --> 00:46:07,984 918 00:46:07,984 --> 00:46:09,590 >> छात्र 36: लेकिन यह नहीं है कुछ की ओर इशारा करते. 919 00:46:09,590 --> 00:46:11,540 >> जेसन Hirschhorn: नहीं, यह नहीं है कुछ भी करने के लिए प्रारंभ. 920 00:46:11,540 --> 00:46:12,790 लेकिन हम भी इसका इस्तेमाल करने के लिए नहीं जा रहे हैं. 921 00:46:12,790 --> 00:46:15,300 हम में कुछ करने जा रहे हैं यह पहली बार हम इस्तेमाल करते हैं. 922 00:46:15,300 --> 00:46:16,580 तो यह ठीक लगता है. 923 00:46:16,580 --> 00:46:17,780 तो हम यहाँ malloc की जरूरत नहीं है. 924 00:46:17,780 --> 00:46:19,360 मैं और क्या है के रूप में यह ठीक लगता है. 925 00:46:19,360 --> 00:46:24,350 926 00:46:24,350 --> 00:46:25,790 ठीक है. 927 00:46:25,790 --> 00:46:27,190 हम fread लाइन है. 928 00:46:27,190 --> 00:46:28,490 की अगली पंक्ति करते हैं. 929 00:46:28,490 --> 00:46:32,984 >> हम एक फ़ाइल में लिखने के लिए चाहते हैं, क्या है ऐसा करने के लिए उपयोग करने के लिए एक अच्छा समारोह? 930 00:46:32,984 --> 00:46:33,770 >> छात्र 37: fwrite? 931 00:46:33,770 --> 00:46:35,140 >> छात्र 38: fprintf? 932 00:46:35,140 --> 00:46:36,010 >> जेसन Hirschhorn: fprintf एक है. 933 00:46:36,010 --> 00:46:37,260 एक और एक क्या है? 934 00:46:37,260 --> 00:46:37,680 >> छात्र 39: fwrite. 935 00:46:37,680 --> 00:46:38,510 >> जेसन Hirschhorn: fwrite. 936 00:46:38,510 --> 00:46:41,250 और हमारे उद्देश्यों के लिए, fwrite, हम यहां जो देखा है, 937 00:46:41,250 --> 00:46:42,500 शायद बेहतर विकल्प. 938 00:46:42,500 --> 00:46:51,970 939 00:46:51,970 --> 00:46:53,950 यह रूप में अच्छी तरह से चार तर्क लेता है. 940 00:46:53,950 --> 00:46:57,570 निशांत, आप दे सकते हैं तर्क मुझे? 941 00:46:57,570 --> 00:47:00,570 >> निशांत: पहले एक जा रहा है सिर्फ बफर हो. 942 00:47:00,570 --> 00:47:02,210 >> जेसन Hirschhorn: ठीक है. 943 00:47:02,210 --> 00:47:06,752 >> निशांत: एक दूसरे के सिर्फ 1 होने जा रहा. 944 00:47:06,752 --> 00:47:09,510 तीसरे एक 1 होने जा रहा है. 945 00:47:09,510 --> 00:47:11,470 और चौथा एक डीएसटी होने जा रहा है. 946 00:47:11,470 --> 00:47:18,010 947 00:47:18,010 --> 00:47:19,550 >> जेसन Hirschhorn: किसी को भी करता है कि रेखा के बारे में किसी भी सवाल? 948 00:47:19,550 --> 00:47:28,370 949 00:47:28,370 --> 00:47:29,130 यह अच्छा लग रहा है. 950 00:47:29,130 --> 00:47:29,590 ठीक है. 951 00:47:29,590 --> 00:47:34,250 तो अब यह हम कर रहे हैं एक बात की तरह लग रहा है लापता - वास्तव में, के लिखने 952 00:47:34,250 --> 00:47:35,090 इस अंतिम पंक्ति. 953 00:47:35,090 --> 00:47:36,300 फ़ाइलें बंद करें. 954 00:47:36,300 --> 00:47:38,880 कौन लेखन हमें खत्म कर सकते हैं इन पिछले दो लाइनें? 955 00:47:38,880 --> 00:47:39,120 हां. 956 00:47:39,120 --> 00:47:39,850 क्षमा करें, आपका नाम क्या है? 957 00:47:39,850 --> 00:47:40,580 >> लुसी: लुसी. 958 00:47:40,580 --> 00:47:41,580 >> जेसन Hirschhorn: लुसी. 959 00:47:41,580 --> 00:47:47,560 >> लुसी: तो fclose स्रोत और fclose गंतव्य. 960 00:47:47,560 --> 00:47:52,430 >> जेसन Hirschhorn: fclose, खुला कोष्ठक, स्रोत, करीब कोष्ठक, अर्धविराम. 961 00:47:52,430 --> 00:47:53,680 और fclose - 962 00:47:53,680 --> 00:47:57,560 963 00:47:57,560 --> 00:47:58,090 हाँ? 964 00:47:58,090 --> 00:48:01,710 >> लुसी: ओपन कोष्ठकों, डीएसटी और फिर अर्धविराम. 965 00:48:01,710 --> 00:48:02,520 >> जेसन Hirschhorn: महान. 966 00:48:02,520 --> 00:48:04,338 और मैं अंत में क्या शामिल होना चाहिए? 967 00:48:04,338 --> 00:48:05,210 >> लुसी: 0 लौटें. 968 00:48:05,210 --> 00:48:05,570 >> जेसन Hirschhorn: 0 लौटें. 969 00:48:05,570 --> 00:48:06,820 मैं करने के लिए है? 970 00:48:06,820 --> 00:48:10,560 971 00:48:10,560 --> 00:48:12,590 बस एक सवाल है. 972 00:48:12,590 --> 00:48:14,957 हम वापसी 0 शामिल करने के लिए है? 973 00:48:14,957 --> 00:48:16,240 >> कई छात्रों: नहीं 974 00:48:16,240 --> 00:48:16,430 >> जेसन Hirschhorn: नहीं 975 00:48:16,430 --> 00:48:18,090 मुख्य स्वचालित रूप से यह करता है आप समाप्त करने के लिए मिलता है. 976 00:48:18,090 --> 00:48:20,580 लेकिन मैं यह करने के लिए अच्छा लगता है स्पष्ट रूप से यह भी शामिल है. 977 00:48:20,580 --> 00:48:23,860 हम अन्य लौट रहे हैं, खासकर जब कार्यक्रम के दौरान बातें. 978 00:48:23,860 --> 00:48:24,810 ठीक है. 979 00:48:24,810 --> 00:48:26,230 यह हम याद कर रहे हैं क्या है - 980 00:48:26,230 --> 00:48:28,520 क्या हैं? 981 00:48:28,520 --> 00:48:31,630 कौन कुछ के बारे में सोच सकते हैं - 982 00:48:31,630 --> 00:48:35,240 के कुछ समझ है क्या बातें में वहाँ जा सकता है? 983 00:48:35,240 --> 00:48:37,350 यह बस कुछ pseudocode में भले ही भाषा की तरह? 984 00:48:37,350 --> 00:48:41,330 >> हम वास्तव में क्या कर रहे हैं - क्या हम जब तक जाना चाहते हो? 985 00:48:41,330 --> 00:48:41,980 हाँ, लुसी. 986 00:48:41,980 --> 00:48:43,240 >> लुसी: फाइल के अंत. 987 00:48:43,240 --> 00:48:44,990 >> जेसन Hirschhorn: फाइल के अंत. 988 00:48:44,990 --> 00:48:49,280 तो आप फ़ाइल के अंत से क्या मतलब है? 989 00:48:49,280 --> 00:48:50,955 >> लुसी: आप तक पहुँचते हैं फ़ाइल का अंत, बंद करो. 990 00:48:50,955 --> 00:48:51,240 >> जेसन Hirschhorn: ठीक है. 991 00:48:51,240 --> 00:48:53,460 तो एक बार हम फ़ाइल के अंत तक पहुँचते हैं. 992 00:48:53,460 --> 00:48:56,893 हम पर पहुंच गया है जब हमें कैसे पता चलेगा फ़ाइल का अंत? 993 00:48:56,893 --> 00:48:59,900 >> छात्र 40: मैं बफर लगता नल पर सेट हो जाएगा. 994 00:48:59,900 --> 00:49:01,885 >> छात्र 41: बफर घोषित किया जाता है लूप के अंदर. 995 00:49:01,885 --> 00:49:03,670 >> जेसन Hirschhorn: तो आपको लगता है कि बफर नल करने के लिए निर्धारित किया जाएगा. 996 00:49:03,670 --> 00:49:05,850 क्यों अशक्त करने के लिए सेट किया जा बफर होगा? 997 00:49:05,850 --> 00:49:10,420 >> छात्र 40: जब आप क्योंकि fread, आप डालने की कोशिश कर रहे हैं 998 00:49:10,420 --> 00:49:13,528 बफर में कुछ भी नहीं है. 999 00:49:13,528 --> 00:49:13,980 >> जेसन Hirschhorn: ठीक है. 1000 00:49:13,980 --> 00:49:15,550 तो आप fread सोच रहे हैं - 1001 00:49:15,550 --> 00:49:19,000 हम के अंत तक पहुँच गए जब फ़ाइल, क्या fread करने जा रहा है? 1002 00:49:19,000 --> 00:49:21,230 मुझे लगता है कि सवाल है हम यह पता लगाने की है. 1003 00:49:21,230 --> 00:49:21,960 Fread क्या करता है? 1004 00:49:21,960 --> 00:49:25,640 यह बफर में रिक्त रखा है, या करता है यह कुछ और क्या करता है? 1005 00:49:25,640 --> 00:49:27,510 हम कैसे यह क्या करता है यह पता लगाने कर सकते हैं? 1006 00:49:27,510 --> 00:49:28,190 >> छात्र 42: द. 1007 00:49:28,190 --> 00:49:28,810 >> जेसन Hirschhorn: यार. 1008 00:49:28,810 --> 00:49:32,280 तो चलो यहाँ देखते हैं. 1009 00:49:32,280 --> 00:49:34,000 मूल्य वापसी. 1010 00:49:34,000 --> 00:49:39,620 सफलता, fread में और लौटने fwrite पढ़ने के लिए या लिखित मदों की संख्या. 1011 00:49:39,620 --> 00:49:43,700 यह संख्या बाइट्स की संख्या के बराबर होती है आकार 1 है केवल जब स्थानांतरित कर दिया. 1012 00:49:43,700 --> 00:49:47,780 कोई त्रुटि होती है, या का अंत तो फ़ाइल तक पहुँच जाता है, वापसी मान एक है 1013 00:49:47,780 --> 00:49:51,490 कम मद गिनती या 0. 1014 00:49:51,490 --> 00:49:57,860 >> इसलिए हमारे उद्देश्यों के लिए, अगर fread पहुँचता फ़ाइल का अंत, और से पढ़ता 1015 00:49:57,860 --> 00:50:02,100 फाइल के अंत में, कुछ नहीं बचा है पढ़ने के लिए, क्या यह वापस करने के लिए जा रहा है? 1016 00:50:02,100 --> 00:50:03,290 >> छात्र 43: शून्य? 1017 00:50:03,290 --> 00:50:04,540 >> जेसन Hirschhorn: क्या? 1018 00:50:04,540 --> 00:50:05,300 >> छात्र 43: शून्य? 1019 00:50:05,300 --> 00:50:05,690 >> जेसन Hirschhorn: शून्य. 1020 00:50:05,690 --> 00:50:06,940 यह शून्य वापस जाने के लिए जा रहा है. 1021 00:50:06,940 --> 00:50:09,360 1022 00:50:09,360 --> 00:50:13,010 इसलिए हम हम है कि जब fread, पता फ़ाइल के अंत तक, जा रहा है 1023 00:50:13,010 --> 00:50:13,690 शून्य वापस जाने के लिए. 1024 00:50:13,690 --> 00:50:17,460 कैसे हम अपने लाभ के लिए उपयोग कर सकते हैं? 1025 00:50:17,460 --> 00:50:21,733 >> AVI: तुम बाहर एक चर घोषणा कर सकते हैं चेक बुलाया पाश की. 1026 00:50:21,733 --> 00:50:27,040 चेक बराबर होती है - 1027 00:50:27,040 --> 00:50:28,190 अब के लिए - एक. 1028 00:50:28,190 --> 00:50:28,920 >> जेसन Hirschhorn: ठीक है. 1029 00:50:28,920 --> 00:50:38,050 >> AVI: और फिर आप किसी IF डाल सकते हैं सही fread कह के बाद बयान अगर 1030 00:50:38,050 --> 00:50:42,600 fread शून्य के बराबर होती है - 1031 00:50:42,600 --> 00:50:43,850 नं. 1032 00:50:43,850 --> 00:50:46,002 1033 00:50:46,002 --> 00:50:47,252 >> जेसन Hirschhorn: कौन एवी मदद कर सकते हैं? 1034 00:50:47,252 --> 00:50:49,690 1035 00:50:49,690 --> 00:50:52,410 >> AVI: मूल्य क्या है fread द्वारा दिया गया? 1036 00:50:52,410 --> 00:50:54,060 >> जेसन Hirschhorn: हम बस कि खत्म हो गया था. 1037 00:50:54,060 --> 00:50:55,450 >> AVI: आप यह कैसे प्रतिनिधित्व करते हैं? 1038 00:50:55,450 --> 00:50:57,190 >> जेसन Hirschhorn: तो यह देता है - चलो यहाँ ऊपर देखो - यह एक रिटर्न 1039 00:50:57,190 --> 00:50:59,340 अनिवार्य रूप से है जो size_t, एक पूर्णांक. 1040 00:50:59,340 --> 00:51:02,240 1041 00:51:02,240 --> 00:51:03,410 तो यह एक पूर्णांक देता है. 1042 00:51:03,410 --> 00:51:05,160 और हमारे मामले में, यह होगा 1 या 0 वापसी - 1043 00:51:05,160 --> 00:51:08,760 1 यह एक बात पढ़ें - एक बाइट, और 0 हम अंत तक पहुँच गए हैं. 1044 00:51:08,760 --> 00:51:13,560 1045 00:51:13,560 --> 00:51:16,450 तो fread हैं - 1046 00:51:16,450 --> 00:51:16,855 हाँ? 1047 00:51:16,855 --> 00:51:20,330 >> छात्र 45: आप अभी भरा नहीं डाल सकते हैं में fread (बफर, 1, 1, एसआरसी) 1048 00:51:20,330 --> 00:51:21,660 पाश जबकि? 1049 00:51:21,660 --> 00:51:26,510 >> जेसन Hirschhorn: तो आप का प्रस्ताव वहाँ में यह कर रही है? 1050 00:51:26,510 --> 00:51:27,600 >> [INTERPOSING आवाज़ें] 1051 00:51:27,600 --> 00:51:29,520 >> जेसन Hirschhorn: रुको. 1052 00:51:29,520 --> 00:51:30,885 तो हम इस बात का मुक्त कर रहे हैं. 1053 00:51:30,885 --> 00:51:33,300 तो तुम डाल प्रस्ताव कर रहे हैं fread वहाँ में? 1054 00:51:33,300 --> 00:51:35,457 क्या हम भी बढ़ना चाहिए आप क्या करना चाहते हैं? 1055 00:51:35,457 --> 00:51:36,740 >> छात्र 45: के बाहर बफर. 1056 00:51:36,740 --> 00:51:38,110 >> जेसन Hirschhorn: हम चाहिए यहाँ भी इस बाहर चले जाते हैं. 1057 00:51:38,110 --> 00:51:41,700 >> छात्र 45: लेकिन करता है कि लगातार इसे आगे बढ़ने? 1058 00:51:41,700 --> 00:51:42,950 >> [INTERPOSING आवाज़ें] 1059 00:51:42,950 --> 00:51:46,540 1060 00:51:46,540 --> 00:51:47,470 >> जेसन Hirschhorn: ठीक है. 1061 00:51:47,470 --> 00:51:50,570 तो इस Okshar प्रस्तावित क्या है. 1062 00:51:50,570 --> 00:51:51,930 हम अपने बफर बनाने. 1063 00:51:51,930 --> 00:51:57,020 जब तक हम fread, तो हम fwrite. 1064 00:51:57,020 --> 00:51:59,760 इस पर विचार? 1065 00:51:59,760 --> 00:52:04,050 >> छात्र 46: मेरा एक ही सवाल है, होता है यह वास्तव में आदेश fread निष्पादित? 1066 00:52:04,050 --> 00:52:06,175 >> जेसन Hirschhorn: बड़ा सवाल है. 1067 00:52:06,175 --> 00:52:11,050 आप एक समारोह कॉल डाल रहे हैं जब एक शर्त के अंदर नहीं है कि, 1068 00:52:11,050 --> 00:52:12,300 समारोह कॉल निष्पादित? 1069 00:52:12,300 --> 00:52:15,760 1070 00:52:15,760 --> 00:52:17,770 हम इस बारे में पहले उदाहरण देखा है. 1071 00:52:17,770 --> 00:52:24,900 1072 00:52:24,900 --> 00:52:25,660 है ना? 1073 00:52:25,660 --> 00:52:26,125 >> छात्र 46: ठीक है. 1074 00:52:26,125 --> 00:52:26,590 हाँ. 1075 00:52:26,590 --> 00:52:30,140 इसलिए इसे लागू करता है. 1076 00:52:30,140 --> 00:52:31,790 >> जेसन Hirschhorn: हम चीजों को देखा है उससे पहले, हम हैं जहां की तरह एक 1077 00:52:31,790 --> 00:52:33,550 एक शर्त के अंदर समारोह कॉल. 1078 00:52:33,550 --> 00:52:35,540 उस समारोह कॉल निष्पादित करता है? 1079 00:52:35,540 --> 00:52:36,350 हां. 1080 00:52:36,350 --> 00:52:37,410 तो जवाब है हां. 1081 00:52:37,410 --> 00:52:41,010 इस समारोह कॉल पर अमल करेंगे. 1082 00:52:41,010 --> 00:52:42,418 लेकिन फिर, यह हम क्या चाहते है? 1083 00:52:42,418 --> 00:52:49,250 1084 00:52:49,250 --> 00:52:52,204 >> हम समझ सकता है एक तरीका क्या है यह हम क्या चाहते है बाहर तो क्या होगा? 1085 00:52:52,204 --> 00:52:53,470 >> कई छात्रों: यह भागो? 1086 00:52:53,470 --> 00:52:54,460 >> जेसन Hirschhorn: हम इसे चला सकता है. 1087 00:52:54,460 --> 00:52:57,500 हम ऐसा लेकिन इससे पहले कि हम कर सकते थे इस के माध्यम से कारण है. 1088 00:52:57,500 --> 00:52:57,920 तो - 1089 00:52:57,920 --> 00:53:01,920 हम में से एक बाइट का कहना है कि हमारे हम यहाँ के लिए मिल जाएगा, फ़ाइल, 1090 00:53:01,920 --> 00:53:02,660 हम इस कोड को मिलेगा. 1091 00:53:02,660 --> 00:53:03,620 इस चलेंगे. 1092 00:53:03,620 --> 00:53:07,780 fread एक बाइट लौट सकते हैं और करेंगे यह बफर में दुकान. 1093 00:53:07,780 --> 00:53:11,290 और यह 1 पर मूल्यांकन करेंगे ठीक है, के बाद वह 1 देता है. 1094 00:53:11,290 --> 00:53:12,640 >> तो, जबकि 1. 1095 00:53:12,640 --> 00:53:15,325 कि अंदर कोड मतलब यह है जबकि पाश अमल करेंगे? 1096 00:53:15,325 --> 00:53:15,453 >> छात्र 47: हाँ. 1097 00:53:15,453 --> 00:53:16,040 यह सच है. 1098 00:53:16,040 --> 00:53:16,290 >> जेसन Hirschhorn: हाँ. 1099 00:53:16,290 --> 00:53:17,490 1 सच है. 1100 00:53:17,490 --> 00:53:18,240 यह 0 नहीं है. 1101 00:53:18,240 --> 00:53:20,360 यहाँ तो अंदर कोड पर अमल करेंगे. 1102 00:53:20,360 --> 00:53:22,300 इसलिए हम चाहते हैं कि लिखेंगे. 1103 00:53:22,300 --> 00:53:25,340 हम यह करने के लिए वापस कदम होगा रेखा एक बार फिर से. 1104 00:53:25,340 --> 00:53:26,850 अब हम हैं - 1105 00:53:26,850 --> 00:53:28,550 हम अपने फाइल के अंत में कर रहे हैं. 1106 00:53:28,550 --> 00:53:30,980 हम अपनी फाइल के अंत से पढ़ा, हम केवल उस में एक बाइट था. 1107 00:53:30,980 --> 00:53:34,270 >> Fread 0, दुकानों रिटर्न बफर में कुछ. 1108 00:53:34,270 --> 00:53:35,890 मैं ईमानदारी से पता नहीं क्या यह बफर में संग्रहीत करता है. 1109 00:53:35,890 --> 00:53:38,380 हम शायद लग सकता है यह क्या करता है यह देखने के लिए. 1110 00:53:38,380 --> 00:53:40,130 मैं ईमानदारी से नहीं जानता कि. 1111 00:53:40,130 --> 00:53:43,090 हम क्या परवाह कौन करता है, पता नहीं है यह बफर में संग्रहीत करता है? 1112 00:53:43,090 --> 00:53:44,010 लेकिन यह 0 वापसी करता है. 1113 00:53:44,010 --> 00:53:45,440 और 0 पर अमल करते हुए होगा? 1114 00:53:45,440 --> 00:53:49,950 1115 00:53:49,950 --> 00:53:51,180 >> 0 पर अमल नहीं होगा. 1116 00:53:51,180 --> 00:53:54,030 तो फिर हम यहाँ नीचे कदम होगा. 1117 00:53:54,030 --> 00:53:58,870 तो चलो हाथ के एक शो के लिए चलते यह अगर हम चलाते हैं, या हम अगर चाहिए कोड है 1118 00:53:58,870 --> 00:54:00,140 पहला परिवर्तन करना चाहिए. 1119 00:54:00,140 --> 00:54:02,180 अगर आपको लगता है - तो आप वोट करने के लिए है. 1120 00:54:02,180 --> 00:54:06,885 आप हम इस कोड को चलाने चाहिए अगर आपको लगता है के रूप में है, अपना हाथ बढ़ा कर दीजिये. 1121 00:54:06,885 --> 00:54:12,440 1122 00:54:12,440 --> 00:54:13,400 >> ठीक है. 1123 00:54:13,400 --> 00:54:14,315 वहाँ एक है - 1124 00:54:14,315 --> 00:54:17,260 आप एक सवाल है, चिंता की क्या ज़रूरत है? 1125 00:54:17,260 --> 00:54:18,080 हाँ. 1126 00:54:18,080 --> 00:54:21,240 >> छात्र 48: हम बफर ले जाने के बाद लूप के बाहर, हम करते हैं 1127 00:54:21,240 --> 00:54:22,670 यह malloc के लिए है? 1128 00:54:22,670 --> 00:54:23,310 >> जेसन Hirschhorn: बड़ा सवाल है. 1129 00:54:23,310 --> 00:54:26,670 हम में से बाहर बफर ले जाने के बाद पाश, हम यह malloc के लिए क्या है? 1130 00:54:26,670 --> 00:54:28,400 यह एक दायरे सवाल है. 1131 00:54:28,400 --> 00:54:32,130 हम बाहर बफर इनिशियलाइज़ हैं इस पाश की, यह मौजूद होगा 1132 00:54:32,130 --> 00:54:33,534 लूप के अंदर? 1133 00:54:33,534 --> 00:54:35,230 >> कई छात्रों: हाँ. 1134 00:54:35,230 --> 00:54:35,580 >> जेसन Hirschhorn: हाँ. 1135 00:54:35,580 --> 00:54:40,100 इसके दायरे, लूप के अंदर शामिल किया गया और, वास्तव में, कुछ भी अंदर यह नीचे 1136 00:54:40,100 --> 00:54:42,460 सहित इस कोड की यहां के अंदर बातें. 1137 00:54:42,460 --> 00:54:43,930 इसलिए हम यह malloc की जरूरत नहीं है. 1138 00:54:43,930 --> 00:54:47,766 यह एक स्थानीय चर है, और इसके दायरे अभी भी लूप में शामिल हैं. 1139 00:54:47,766 --> 00:54:49,540 >> छात्र 49: हम इसे मुक्त करने की जरूरत है? 1140 00:54:49,540 --> 00:54:51,770 >> जेसन Hirschhorn: हम करते हैं मुक्त बफर करने की आवश्यकता है? 1141 00:54:51,770 --> 00:54:53,860 >> छात्र 49: हाँ, हम malloc नहीं है. 1142 00:54:53,860 --> 00:54:55,750 >> जेसन Hirschhorn: हम करते हैं मुक्त बफर करने की आवश्यकता है? 1143 00:54:55,750 --> 00:54:57,160 हम नहीं करते. 1144 00:54:57,160 --> 00:55:01,280 फिर, यह एक स्थानीय चर रहा है, इसलिए हम इसे मुक्त करने की जरूरत नहीं है. 1145 00:55:01,280 --> 00:55:02,170 ठीक है. 1146 00:55:02,170 --> 00:55:03,480 के देखो क्या होता है. 1147 00:55:03,480 --> 00:55:17,290 1148 00:55:17,290 --> 00:55:18,220 तो यह गई है. 1149 00:55:18,220 --> 00:55:20,830 यही कारण है कि क्या कुछ था कि मार्कस पहले प्रस्ताव रखा. 1150 00:55:20,830 --> 00:55:25,340 इसलिए हम चाहते हैं कि त्रुटि, चर बफर यहां इस्तेमाल किया जब गई है. 1151 00:55:25,340 --> 00:55:26,590 >> हम यह कैसे तय कर सकते हैं? 1152 00:55:26,590 --> 00:55:29,460 1153 00:55:29,460 --> 00:55:30,960 >> छात्र 50: यह malloc? 1154 00:55:30,960 --> 00:55:31,770 >> छात्र 51: रिक्त बराबरी? 1155 00:55:31,770 --> 00:55:33,000 >> छात्र 52: बफर खबरें बराबर होती कहो. 1156 00:55:33,000 --> 00:55:34,250 >> जेसन Hirschhorn: ठीक है. 1157 00:55:34,250 --> 00:55:40,040 1158 00:55:40,040 --> 00:55:40,770 अच्छा लग रहा है. 1159 00:55:40,770 --> 00:55:42,410 अब हम यह है. 1160 00:55:42,410 --> 00:55:45,630 की नकल की कोशिश करने के लिए कुछ पैदा करते हैं. 1161 00:55:45,630 --> 00:56:08,990 1162 00:56:08,990 --> 00:56:10,490 इसलिए हम अपने पाठ फ़ाइल है. 1163 00:56:10,490 --> 00:56:11,740 हम कैसे इस कार्यक्रम चला सकते हैं? 1164 00:56:11,740 --> 00:56:14,140 1165 00:56:14,140 --> 00:56:15,472 हाँ. 1166 00:56:15,472 --> 00:56:22,230 >> छात्र 53: आप डॉट कर सकते हैं सी.पी., test.txt स्लेश. 1167 00:56:22,230 --> 00:56:25,140 और फिर तुम एक फ़ाइल नाम कर सकते हैं इसे में स्टोर होगा जो. 1168 00:56:25,140 --> 00:56:25,510 >> जेसन Hirschhorn: ठीक है. 1169 00:56:25,510 --> 00:56:27,380 हम यह out.txt फोन करता हूँ. 1170 00:56:27,380 --> 00:56:28,630 कूल? 1171 00:56:28,630 --> 00:56:31,700 1172 00:56:31,700 --> 00:56:34,320 Seg गलती. 1173 00:56:34,320 --> 00:56:35,570 SEG गलती पर विचार? 1174 00:56:35,570 --> 00:56:40,900 1175 00:56:40,900 --> 00:56:41,390 यह बहुत अच्छा है. 1176 00:56:41,390 --> 00:56:45,040 हम कैसे पता लगा सकते हैं जहां SEG गलती है? 1177 00:56:45,040 --> 00:56:45,680 क्या? 1178 00:56:45,680 --> 00:56:45,990 >> छात्र 54: Gdb. 1179 00:56:45,990 --> 00:56:47,240 >> जेसन Hirschhorn: Gdb. 1180 00:56:47,240 --> 00:56:51,400 1181 00:56:51,400 --> 00:56:55,300 हम GDB डॉट स्लेश लिख कर GDB चलाने हमारे कार्यक्रम का नाम. 1182 00:56:55,300 --> 00:56:57,020 वहाँ कोई कमांड लाइन तर्क. 1183 00:56:57,020 --> 00:56:59,570 हम एक सेट करने के लिए जा रहे हैं मुख्य पर ब्रेकपाइंट. 1184 00:56:59,570 --> 00:57:02,190 मैं GDB शुरू करना चाहते हैं, तो मैं क्या करूँ? 1185 00:57:02,190 --> 00:57:02,730 >> छात्र 55: आर 1186 00:57:02,730 --> 00:57:08,910 >> फिर आर और क्या जेसन Hirschhorn? 1187 00:57:08,910 --> 00:57:09,400 >> छात्र 55: तर्क? 1188 00:57:09,400 --> 00:57:10,650 >> जेसन Hirschhorn: तो आदेश पंक्ति तर्क. 1189 00:57:10,650 --> 00:57:15,890 1190 00:57:15,890 --> 00:57:17,120 के माध्यम से चलते हैं. 1191 00:57:17,120 --> 00:57:19,090 एन सिर्फ रेखा ने मुझे लाइन ले जा रहा है. 1192 00:57:19,090 --> 00:57:21,450 मैं जा रहा हूँ जब तक मैं अपने SEG गलती मिलता है. 1193 00:57:21,450 --> 00:57:22,700 मेरे SEG गलती नहीं है. 1194 00:57:22,700 --> 00:57:24,960 1195 00:57:24,960 --> 00:57:27,875 Fread के कारण ऐसा लगता है मेरे SEG गलती. 1196 00:57:27,875 --> 00:57:30,570 1197 00:57:30,570 --> 00:57:32,770 मैं fread मेरे SEG त्रुटि कारण पता यह थी कि क्योंकि 1198 00:57:32,770 --> 00:57:34,950 लाइन हम सिर्फ मार डाला. 1199 00:57:34,950 --> 00:57:36,530 >> और था कि केवल एक चीज उस लाइन में हो - 1200 00:57:36,530 --> 00:57:37,520 दो बातें हो गया. 1201 00:57:37,520 --> 00:57:40,610 Fread जा रहा था, और फिर हम थे कुछ देर की जाँच कर रही है. 1202 00:57:40,610 --> 00:57:44,820 मैं शर्त को तैयार हूँ कि जब तक जाँच मेरे SEG गलती के कारण नहीं किया गया था. 1203 00:57:44,820 --> 00:57:46,950 सबसे अधिक संभावना है, fread था मेरे SEG गलती के कारण. 1204 00:57:46,950 --> 00:57:49,260 मैं भी यहाँ कुछ, memcopy देखें. 1205 00:57:49,260 --> 00:57:50,500 >> मेमोरी प्रतिलिपि. 1206 00:57:50,500 --> 00:57:53,820 से स्मृति घूम रहा तरह लगता है दूसरे के लिए एक स्थान. 1207 00:57:53,820 --> 00:57:56,890 क्या होगा कि कुछ की तरह लगता है fread में, शायद कुछ स्मृति 1208 00:57:56,890 --> 00:57:58,910 यहां तक ​​यहां से बढ़ रहा है. 1209 00:57:58,910 --> 00:58:01,740 1210 00:58:01,740 --> 00:58:03,860 फिर इस के माध्यम से चलते हैं. 1211 00:58:03,860 --> 00:58:06,900 कैसे मैं इसे शुरू करते हैं और इसे फिर से चलाने? 1212 00:58:06,900 --> 00:58:08,092 हाँ. 1213 00:58:08,092 --> 00:58:15,140 >> छात्र 56: तुम डाल करने की ज़रूरत है बफर से पहले एक एम्परसेंड? 1214 00:58:15,140 --> 00:58:17,800 >> जेसन Hirschhorn: तो पहले एम्परसेंड बफर मुझे का पता देना होगा 1215 00:58:17,800 --> 00:58:22,330 * एक चार है जो बफर,. 1216 00:58:22,330 --> 00:58:25,250 चलो यह एक और समय के माध्यम से चलाते हैं. 1217 00:58:25,250 --> 00:58:28,248 कैसे मैं एक बार और यह माध्यम से चला सकता हूँ? 1218 00:58:28,248 --> 00:58:29,210 >> छात्र 57: आप कर सकते हैं बस फिर से चलाने लिखें? 1219 00:58:29,210 --> 00:58:32,050 >> जेसन Hirschhorn: बस फिर रन लिखें. 1220 00:58:32,050 --> 00:58:33,415 तो हम नहीं जा रहे हैं इस लाइन पर अमल. 1221 00:58:33,415 --> 00:58:36,250 1222 00:58:36,250 --> 00:58:39,240 तो बफर एक शून्य सूचक है. 1223 00:58:39,240 --> 00:58:40,490 सही? 1224 00:58:40,490 --> 00:58:45,870 1225 00:58:45,870 --> 00:58:47,060 यह करने के लिए इशारा कर रहा है - चलो देखते हैं. 1226 00:58:47,060 --> 00:58:48,500 हम हैं तो हमारी - 1227 00:58:48,500 --> 00:58:50,430 इस की एक त्वरित तस्वीर खींचना. 1228 00:58:50,430 --> 00:58:53,500 अगर हर कोई देख सकता हूँ मैं यहाँ पर लिखना? 1229 00:58:53,500 --> 00:59:02,890 >> तो ढेर में, हम एक स्थानीय है चर और यह बफर कहा जाता है, और 1230 00:59:02,890 --> 00:59:08,230 यह एक चार के लिए एक संकेत है. 1231 00:59:08,230 --> 00:59:10,325 क्या पता इस चार पर है? 1232 00:59:10,325 --> 00:59:12,550 >> छात्र 58: 0x0. 1233 00:59:12,550 --> 00:59:13,400 >> जेसन Hirschhorn: ठीक है. 1234 00:59:13,400 --> 00:59:14,200 यही कारण है कि यह क्या है. 1235 00:59:14,200 --> 00:59:17,600 यहाँ में, बफर अंदर, 0x0 संग्रहीत किया जाता है. 1236 00:59:17,600 --> 00:59:20,480 यही कारण है कि हम क्या किया है - हम अभी सेटअप. 1237 00:59:20,480 --> 00:59:27,540 इसलिए इस लाइन, fread, कुछ कहते हैं जहां स्रोत से? 1238 00:59:27,540 --> 00:59:30,560 इस बॉक्स या इस बॉक्स में? 1239 00:59:30,560 --> 00:59:31,060 जो बॉक्स? 1240 00:59:31,060 --> 00:59:33,290 बॉक्स या सही बॉक्स को छोड़ दिया? 1241 00:59:33,290 --> 00:59:34,750 यह सही बॉक्स. 1242 00:59:34,750 --> 00:59:38,440 >> यह सूचक इस प्रकार है, और यहाँ में डालता है. 1243 00:59:38,440 --> 00:59:42,620 हम पर कोशिश करते हैं और स्पर्श स्मृति जब स्थान 0, हमें क्या मिलता है? 1244 00:59:42,620 --> 00:59:45,050 विखंडन दोष. 1245 00:59:45,050 --> 00:59:46,550 यही कारण है कि हम अभी त्रुटि है. 1246 00:59:46,550 --> 00:59:46,970 हाँ. 1247 00:59:46,970 --> 00:59:48,410 >> छात्र 59: तुम नहीं है सितारा बफर रखा है? 1248 00:59:48,410 --> 00:59:49,180 नहीं या? 1249 00:59:49,180 --> 00:59:50,050 Fread के लिए? 1250 00:59:50,050 --> 00:59:51,450 >> जेसन Hirschhorn: तो fread एक सूचक लेता है. 1251 00:59:51,450 --> 00:59:54,920 1252 00:59:54,920 --> 00:59:55,900 तो यह बफर में गुजरता है. 1253 00:59:55,900 --> 00:59:58,980 और फिर यह करेंगे de-संदर्भ कहीं fread अंदर. 1254 00:59:58,980 --> 01:00:00,700 लेकिन फिर से, हमने देखा है, यह एक सूचक लेता है. 1255 01:00:00,700 --> 01:00:02,560 हम यह सितारा बफर पारित करने की जरूरत नहीं है. 1256 01:00:02,560 --> 01:00:05,350 यही गुजर जाएगी यह यहाँ है जो भी हो. 1257 01:00:05,350 --> 01:00:07,980 और कहा कि शायद हमें एक त्रुटि देना होगा हम यह de-संदर्भित कर रहे हैं. 1258 01:00:07,980 --> 01:00:08,150 >> है ना? 1259 01:00:08,150 --> 01:00:10,690 हम इस सूचक संदर्भ de करते हैं, जब हम इस स्थान तक पहुँचने का प्रयास, 1260 01:00:10,690 --> 01:00:13,140 हम एक त्रुटि हो रही है - हमारे विखंडन दोष. 1261 01:00:13,140 --> 01:00:15,800 तो - 1262 01:00:15,800 --> 01:00:16,690 उफ़. 1263 01:00:16,690 --> 01:00:19,090 हम GDB से बाहर छोड़ने के लिए जा रहे हैं. 1264 01:00:19,090 --> 01:00:20,160 हमारी लाइन - 1265 01:00:20,160 --> 01:00:22,990 हमारी समस्या - सही है यहां इस लाइन पर. 1266 01:00:22,990 --> 01:00:26,410 और यह एक समस्या है क्योंकि इस लाइन के. 1267 01:00:26,410 --> 01:00:31,780 >> कैसे हम एक बॉक्स बना सकते हैं fread में पहुँचा जा सकता है. 1268 01:00:31,780 --> 01:00:31,980 है ना? 1269 01:00:31,980 --> 01:00:35,190 हम एक है कि एक बॉक्स बनाने की जरूरत बाइट बड़े, एक चार का आकार. 1270 01:00:35,190 --> 01:00:38,590 लेकिन हमें लगता है कि बॉक्स सुलभ होने की जरूरत इस समारोह में चलता है. 1271 01:00:38,590 --> 01:00:39,390 तो जहां - 1272 01:00:39,390 --> 01:00:39,640 हाँ. 1273 01:00:39,640 --> 01:00:40,440 किसी भी विचार? 1274 01:00:40,440 --> 01:00:43,615 >> छात्र 60: बस के रूप में सेट किसी भी यादृच्छिक चरित्र. 1275 01:00:43,615 --> 01:00:49,150 1276 01:00:49,150 --> 01:00:51,640 बस चार बफर बराबरी करना चरित्र. 1277 01:00:51,640 --> 01:00:53,795 और फिर, तुम वहाँ बफर जब - 1278 01:00:53,795 --> 01:00:54,110 >> जेसन Hirschhorn: रुको. 1279 01:00:54,110 --> 01:00:55,110 चार बफर? 1280 01:00:55,110 --> 01:00:55,880 तो कोई सितारा? 1281 01:00:55,880 --> 01:00:56,390 >> छात्र 60: हाँ. 1282 01:00:56,390 --> 01:00:58,560 सितारा बाहर ले जाओ. 1283 01:00:58,560 --> 01:01:00,690 एक यादृच्छिक चरित्र बराबर होती है. 1284 01:01:00,690 --> 01:01:01,460 >> जेसन Hirschhorn: ठीक है. 1285 01:01:01,460 --> 01:01:02,420 तो मुझे एक दे. 1286 01:01:02,420 --> 01:01:03,170 >> छात्र 60: की तरह एक या कुछ और. 1287 01:01:03,170 --> 01:01:06,160 और फिर आप बफर है जब वहाँ, आप एक का उपयोग करें - 1288 01:01:06,160 --> 01:01:06,420 >> छात्र 61: स्टार? 1289 01:01:06,420 --> 01:01:07,650 अरे नहीं, एम्परसेंड. 1290 01:01:07,650 --> 01:01:09,000 >> छात्र 60: एम्परसेंड का प्रयोग करें. 1291 01:01:09,000 --> 01:01:09,470 >> जेसन Hirschhorn: ठीक है. 1292 01:01:09,470 --> 01:01:11,320 और क्या fwrite में के बारे में? 1293 01:01:11,320 --> 01:01:14,150 >> छात्र 60: फिर एम्परसेंड का प्रयोग करें. 1294 01:01:14,150 --> 01:01:14,320 >> जेसन Hirschhorn: सब ठीक है. 1295 01:01:14,320 --> 01:01:20,970 तो आपके विचार है, हम एक चार बनाने और तो उस में कुछ डाल दिया, और 1296 01:01:20,970 --> 01:01:22,612 कि चार लिखें. 1297 01:01:22,612 --> 01:01:23,760 >> छात्र 60: हाँ. 1298 01:01:23,760 --> 01:01:25,916 >> जेसन Hirschhorn: क्या लोगों को लगता है? 1299 01:01:25,916 --> 01:01:27,770 >> छात्र 62: यह जटिल है. 1300 01:01:27,770 --> 01:01:28,460 >> जेसन Hirschhorn: ठीक है. 1301 01:01:28,460 --> 01:01:29,760 चलो इसे बाहर आकर्षित करते हैं. 1302 01:01:29,760 --> 01:01:35,720 तो इस बार, मैं इस आकर्षित करने के लिए जा रहा हूँ हम तो यहां ढेर पर लाल, और 1303 01:01:35,720 --> 01:01:36,410 होगा - 1304 01:01:36,410 --> 01:01:36,822 ओह! 1305 01:01:36,822 --> 01:01:38,060 माफ़ कीजिए. 1306 01:01:38,060 --> 01:01:45,930 तो इस बार हम कुछ कहा जाता है बफर, और यह ढेर पर है. 1307 01:01:45,930 --> 01:01:48,430 सही? 1308 01:01:48,430 --> 01:01:51,520 और हम शुरू में, यह एक में बचत कर रहे हैं. 1309 01:01:51,520 --> 01:01:53,830 >> तो फिर हम fread करने के लिए हमारे कॉल है. 1310 01:01:53,830 --> 01:02:01,300 क्या fread इसमें से एक बाइट लेता है करता है हमारे फ़ाइल और इसे कहीं डालता है. 1311 01:02:01,300 --> 01:02:04,570 यह जो कुछ भी कहते हैं बात की ओर इशारा करते है. 1312 01:02:04,570 --> 01:02:09,130 खैर, हम यह पता था पहले - 1313 01:02:09,130 --> 01:02:10,250 0x0. 1314 01:02:10,250 --> 01:02:13,349 अब हम क्या पता है? 1315 01:02:13,349 --> 01:02:14,650 >> छात्र 63: जो भी हो पता बफर है. 1316 01:02:14,650 --> 01:02:15,970 >> जेसन Hirschhorn: जो भी हो पता बफर है. 1317 01:02:15,970 --> 01:02:22,370 यह शायद होने जा रहा है ऐसा कुछ. 1318 01:02:22,370 --> 01:02:26,950 शायद एक बी के साथ शुरू करने जा रहा है और फिर एक एफ, और छह अन्य है 1319 01:02:26,950 --> 01:02:27,970 हेक्साडेसिमल अंक. 1320 01:02:27,970 --> 01:02:28,480 कोई बात नहीं. 1321 01:02:28,480 --> 01:02:29,470 कुछ पता. 1322 01:02:29,470 --> 01:02:31,410 और हम अंदर उस पते गुजर रहे हैं 1323 01:02:31,410 --> 01:02:34,790 >> और हम अपने एक डाल करने के लिए जा रहे हैं उस पते पर बाइट बात. 1324 01:02:34,790 --> 01:02:38,470 इसलिए हम अपने एक डाल करने के लिए जा रहे हैं बाइट बात यहां के अंदर. 1325 01:02:38,470 --> 01:02:40,800 और फिर हम से लिखने जा रहे हैं अंदर यहां कभी क्या. 1326 01:02:40,800 --> 01:02:43,425 1327 01:02:43,425 --> 01:02:45,380 किसी को भी किसी भी सवाल है उस के बारे में? 1328 01:02:45,380 --> 01:02:50,990 1329 01:02:50,990 --> 01:02:54,690 कौन इस कोड काम करेंगे सोचता है? 1330 01:02:54,690 --> 01:02:56,020 >> अगर आपको लगता है अपने हाथ उठाओ इस कोड काम करेंगे. 1331 01:02:56,020 --> 01:02:57,270 आप एक रुख ले जाना है. 1332 01:02:57,270 --> 01:03:00,670 1333 01:03:00,670 --> 01:03:02,500 और कौन इस कोड काम नहीं करेगा सोचता है? 1334 01:03:02,500 --> 01:03:04,610 अपने हाथ उठाओ. 1335 01:03:04,610 --> 01:03:06,750 बाकी सब होना चाहिए उनके हाथ को ऊपर उठाने. 1336 01:03:06,750 --> 01:03:07,670 ठीक है. 1337 01:03:07,670 --> 01:03:09,390 माइकल, आप जहां खड़े हैं? 1338 01:03:09,390 --> 01:03:10,680 >> माइकल: मैं तय नहीं कर सकते. 1339 01:03:10,680 --> 01:03:12,070 एक तरह से बीच में. 1340 01:03:12,070 --> 01:03:12,736 >> जेसन Hirschhorn: आप कर रहे हैं बीच में. 1341 01:03:12,736 --> 01:03:13,092 एक उठाओ. 1342 01:03:13,092 --> 01:03:14,400 >> माइकल: मैं विश्वास करना होगा और यह काम करेगा कहते हैं. 1343 01:03:14,400 --> 01:03:14,660 >> जेसन Hirschhorn: ठीक है. 1344 01:03:14,660 --> 01:03:16,047 आप विश्वास है और यह काम करता है कहना होगा? 1345 01:03:16,047 --> 01:03:26,490 1346 01:03:26,490 --> 01:03:27,020 क्या हुआ? 1347 01:03:27,020 --> 01:03:28,270 >> [INTERPOSING आवाज़ें] 1348 01:03:28,270 --> 01:03:35,170 1349 01:03:35,170 --> 01:03:35,950 >> जेसन Hirschhorn: नहीं SEG गलती. 1350 01:03:35,950 --> 01:03:40,320 हम कैसे देखने के लिए जाँच कर सकते हैं दो बातें समान हैं? 1351 01:03:40,320 --> 01:03:42,060 दो फाइलें बराबर हैं. 1352 01:03:42,060 --> 01:03:43,300 >> छात्र 64: डिफ. 1353 01:03:43,300 --> 01:03:45,490 >> जेसन Hirschhorn: डिफ. 1354 01:03:45,490 --> 01:03:51,630 के बीच मतभेद के लिए डिफ चेक यह रिटर्न दो फ़ाइलें, और अगर 1355 01:03:51,630 --> 01:03:52,890 कुछ नहीं, वे समान हैं. 1356 01:03:52,890 --> 01:03:59,030 हम ऊपर खुला और, अगर हम अपनी फाइल मिलता है. 1357 01:03:59,030 --> 01:04:00,490 तो यह है कि सही समाधान किया गया. 1358 01:04:00,490 --> 01:04:01,780 हम इसे एक बार और वापस देखो. 1359 01:04:01,780 --> 01:04:04,080 हम वास्तव में भी नहीं था आरंभ करने की आवश्यकता है. 1360 01:04:04,080 --> 01:04:05,520 >> यह शायद एक सा लग रही होगी आप नहीं डाली यदि क्लीनर 1361 01:04:05,520 --> 01:04:07,680 वहाँ में यादृच्छिक कुछ. 1362 01:04:07,680 --> 01:04:13,070 बात की जा रही है, तुम बनाने की जरूरत से कुछ स्टोर करने के लिए कुछ स्थान 1363 01:04:13,070 --> 01:04:15,530 fread और कुछ ले fwrite के बाहर. 1364 01:04:15,530 --> 01:04:18,400 और वह बात थी एक स्थानीय हो या तो ढेर पर चर - आप 1365 01:04:18,400 --> 01:04:19,890 कुछ जगह malloc'd है सका. 1366 01:04:19,890 --> 01:04:23,030 >> इसलिए हम वास्तव में हो सकता है लिखित यहाँ malloc, और 1367 01:04:23,030 --> 01:04:25,420 कि काम किया होता. 1368 01:04:25,420 --> 01:04:28,660 और फिर हम भंडारण के गया होता कहीं ढेर पर हमारी बातें. 1369 01:04:28,660 --> 01:04:31,940 लेकिन यह शायद, वास्तव में है सबसे सुरुचिपूर्ण समाधान. 1370 01:04:31,940 --> 01:04:34,490 बस ढेर पर कुछ स्थान बना इन बातों को जाने के लिए. 1371 01:04:34,490 --> 01:04:37,690 1372 01:04:37,690 --> 01:04:38,990 >> मैं दो अन्य टिप्पणी के लिए होगा. 1373 01:04:38,990 --> 01:04:44,650 आप इस में मोड़ ले, और करने के लिए थे तब मेरी टिप्पणी, इस पर रन मिल 1374 01:04:44,650 --> 01:04:47,400 के रूप में निम्नानुसार होगा. 1375 01:04:47,400 --> 01:04:54,300 ये 1 यहाँ है, मेरे लिए, देखो जादुई संख्या की तरह. 1376 01:04:54,300 --> 01:04:56,860 यह 1, fread के मामले में, समझ में आता है. 1377 01:04:56,860 --> 01:04:59,580 चीज़ें है कि नंबर पढ़ने या लिखने के लिए. 1378 01:04:59,580 --> 01:05:03,740 >> लेकिन यह ठीक है यहाँ एक चाहिए शायद कुछ और हो. 1379 01:05:03,740 --> 01:05:05,180 एक तो समाधान क्या है? 1380 01:05:05,180 --> 01:05:06,545 >> छात्र 65: बाइट का आकार. 1381 01:05:06,545 --> 01:05:10,100 1382 01:05:10,100 --> 01:05:11,080 >> जेसन Hirschhorn: उस तरह? 1383 01:05:11,080 --> 01:05:13,130 >> छात्र 65: चार का आकार. 1384 01:05:13,130 --> 01:05:13,820 >> जेसन Hirschhorn: चार का आकार. 1385 01:05:13,820 --> 01:05:15,290 हाँ, बाइट एक प्रकार नहीं है. 1386 01:05:15,290 --> 01:05:16,320 चार निर्माण की तो आकार. 1387 01:05:16,320 --> 01:05:30,270 हम के शीर्ष पर, हो सकता है हमारे कोड, # कि परिभाषित किया. 1388 01:05:30,270 --> 01:05:33,410 कुछ बाइट और कहा जाता है यह वास्तव में एक चार है. 1389 01:05:33,410 --> 01:05:37,675 दरअसल, एक और भी बेहतर दृष्टिकोण इस गया हो सकता है - 1390 01:05:37,675 --> 01:05:39,391 uint. 1391 01:05:39,391 --> 01:05:40,780 किसी को भी यह है कि क्या पता? 1392 01:05:40,780 --> 01:05:44,388 1393 01:05:44,388 --> 01:05:44,840 >> माफ़ कीजिए. 1394 01:05:44,840 --> 01:05:46,090 मैं इसे पीछे की ओर है. 1395 01:05:46,090 --> 01:05:51,620 1396 01:05:51,620 --> 01:05:52,200 नहीं, रुको. 1397 01:05:52,200 --> 01:05:53,450 यह कौन सा रास्ता जाता है? 1398 01:05:53,450 --> 01:05:58,071 1399 01:05:58,071 --> 01:05:59,660 किसी को भी यह है कि क्या पता? 1400 01:05:59,660 --> 01:06:00,950 हाँ. 1401 01:06:00,950 --> 01:06:05,650 >> छात्र 67: मानकीकरण में मदद करने वाली सिस्टम चीजों के पार है कि 1402 01:06:05,650 --> 01:06:08,760 है - अहस्ताक्षरित पूर्णांकों की तरह 8 बाइट्स है कि? 1403 01:06:08,760 --> 01:06:11,785 >> जेसन Hirschhorn: यह है बिल्कुल सही. 1404 01:06:11,785 --> 01:06:14,310 विभिन्न मशीनों पर, एक चार का आकार - 1405 01:06:14,310 --> 01:06:15,180 नहीं आमतौर पर एक चार. 1406 01:06:15,180 --> 01:06:16,100 घर का काम आमतौर पर एक बाइट हैं. 1407 01:06:16,100 --> 01:06:19,590 लेकिन अन्य डेटा प्रकार के आकार के होते हैं एक 32 बिट मशीन पर विभिन्न आकार 1408 01:06:19,590 --> 01:06:21,370 एक 64 बिट मशीन बनाम. 1409 01:06:21,370 --> 01:06:25,180 एक uint8_t हमेशा 8 बिट है - 1410 01:06:25,180 --> 01:06:27,210 हमेशा एक बाइट. 1411 01:06:27,210 --> 01:06:29,580 >> और मैं शामिल करने की जरूरत है कि मानक INT हेडर फाइल. 1412 01:06:29,580 --> 01:06:35,040 तो अब, यह शायद हो गया होता इस कोड लिखने के लिए सबसे अच्छा तरीका है. 1413 01:06:35,040 --> 01:06:40,160 1414 01:06:40,160 --> 01:06:41,450 इसलिए मैं जादुई संख्या से छुटकारा मिलेगा. 1415 01:06:41,450 --> 01:06:44,690 और मैं यह भी एक अधिक तर्कसंगत है बफर के लिए लिखें. 1416 01:06:44,690 --> 01:06:49,450 यह एक बाइट है, बस एक चार नहीं है जो हम इसे होने की उम्मीद है. 1417 01:06:49,450 --> 01:06:53,400 >> और यहाँ, हम वास्तव में है थोड़ा और अधिक मजबूत हो गया. 1418 01:06:53,400 --> 01:06:55,190 हम जो, एक चार यह फोन नहीं कर रहे हैं - 1419 01:06:55,190 --> 01:06:58,630 हो सकता है, कौन जानता है - एक अलग हो सकता विभिन्न मशीनों पर आकार. 1420 01:06:58,630 --> 01:07:02,025 हम वास्तव में यह वास्तव में है क्या कह रहे हैं एक बाइट, हमेशा, कोई बात नहीं क्या. 1421 01:07:02,025 --> 01:07:05,810 हम यहाँ देखो, हम सी.पी. बनाते हैं. 1422 01:07:05,810 --> 01:07:08,340 ओह. 1423 01:07:08,340 --> 01:07:09,590 क्या हुआ? 1424 01:07:09,590 --> 01:07:14,470 1425 01:07:14,470 --> 01:07:16,170 >> छात्र 68: यह स्विच किया जा सकता है. 1426 01:07:16,170 --> 01:07:17,880 >> जेसन Hirschhorn: क्या? 1427 01:07:17,880 --> 01:07:19,130 >> छात्र 69: यह है? 1428 01:07:19,130 --> 01:07:21,940 1429 01:07:21,940 --> 01:07:25,080 >> छात्र 70: तुम नहीं किया एक प्रकार के रूप में परिभाषित करते हैं. 1430 01:07:25,080 --> 01:07:28,684 >> छात्र 71: लेकिन यह चाहिए मानक में परिभाषित किया. 1431 01:07:28,684 --> 01:07:29,934 >> छात्र 72: क्या चल रहा है? 1432 01:07:29,934 --> 01:07:37,660 1433 01:07:37,660 --> 01:07:40,210 >> छात्र 73: परिभाषित करना चाहिए सभी टोपियां हो? 1434 01:07:40,210 --> 01:07:41,370 >> जेसन Hirschhorn: तो यह नहीं है # को परिभाषित. 1435 01:07:41,370 --> 01:07:45,490 दरअसल, इस मामले में, मैं कर रहा हूँ typedef का उपयोग करने के लिए जा रहा है. 1436 01:07:45,490 --> 01:07:48,590 हम के रूप में प्रयोग कर रहे हैं क्योंकि एक स्थान में एक प्रकार का. 1437 01:07:48,590 --> 01:07:51,990 तो इस मामले में, हम वास्तव में चाहते हैं हम एक नए प्रकार का मुद्रण कर रहे हैं जैसे typedef 1438 01:07:51,990 --> 01:07:54,490 बाइट, और यह इस, अनिवार्य रूप से, है. 1439 01:07:54,490 --> 01:07:56,590 यह परिभाषित # की तुलना में थोड़ा अलग है. 1440 01:07:56,590 --> 01:08:02,740 >> और अब, हमारे कोड पूरी तरह से काम करता है. 1441 01:08:02,740 --> 01:08:05,230 तो, फिर, # कुछ लेता है परिभाषित, हर जगह यह जगह 1442 01:08:05,230 --> 01:08:06,780 दूसरी बात यह है के साथ. 1443 01:08:06,780 --> 01:08:07,920 यह सिर्फ एक मैक्रो है - 1444 01:08:07,920 --> 01:08:09,420 आशुलिपि जादुई संख्या से छुटकारा पाने के लिए. 1445 01:08:09,420 --> 01:08:11,360 लेकिन इस मामले में, क्योंकि हम कर रहे हैं एक प्रकार के रूप में प्रयोग - 1446 01:08:11,360 --> 01:08:12,180 यहीं - 1447 01:08:12,180 --> 01:08:19,880 वह काम करने के लिए आदेश में, हम की जरूरत जो कुछ भी बाइट typedef करने के लिए. 1448 01:08:19,880 --> 01:08:21,840 >> और हम यहीं यह परिभाषित कर रहे हैं. 1449 01:08:21,840 --> 01:08:24,750 यह वास्तव में है, एक संरचना नहीं है सिर्फ एक अहस्ताक्षरित पूर्णांक. 1450 01:08:24,750 --> 01:08:27,680 यह एक बाइट लंबा है. 1451 01:08:27,680 --> 01:08:31,910 इस कोड को ऑनलाइन उपलब्ध हो जाएगा, और आप सब ठीक है अब यह होना चाहिए. 1452 01:08:31,910 --> 01:08:33,830 >> तो हम हैं - 1453 01:08:33,830 --> 01:08:34,250 सही - 1454 01:08:34,250 --> 01:08:41,359 13 मिनट में जाने के लिए छोड़ दिया अधिक समस्या 5 सेट. 1455 01:08:41,359 --> 01:08:44,270 मैं एक साथ copy.c के माध्यम से चलना चाहते हैं और फिर हम संक्षेप में बात करेंगे 1456 01:08:44,270 --> 01:08:47,120 अन्य भागों के बारे में समस्या का सेट. 1457 01:08:47,120 --> 01:08:48,899 तो मुझे copy.c. ऊपर खींच 1458 01:08:48,899 --> 01:09:03,930 1459 01:09:03,930 --> 01:09:08,810 और शांत बात है कि हम वास्तव में है, है पहले से ही इस कोड का एक बहुत कुछ लिखा. 1460 01:09:08,810 --> 01:09:11,180 >> हम सचमुच लिखा कोड बस मैं था जब यहां से बाहर आया 1461 01:09:11,180 --> 01:09:13,120 अपने दम पर यह लिख. 1462 01:09:13,120 --> 01:09:16,990 लेकिन यह copy.c है नींव रूपों के पहले दो भागों के लिए 1463 01:09:16,990 --> 01:09:22,340 whodunit.c, के लिए सेट समस्या जो आप लिखने की जरूरत है, और resize.c. 1464 01:09:22,340 --> 01:09:27,050 तीसरे और अंतिम है जो Recover.c, समस्या सेट का हिस्सा नहीं है, 1465 01:09:27,050 --> 01:09:29,529 इस फाइल के बंद आधारित है. 1466 01:09:29,529 --> 01:09:32,200 >> आप उस फ़ाइल लिखने की जरूरत करने जा रहे हैं, हम तुम उस के लिए एक टेम्पलेट दे 1467 01:09:32,200 --> 01:09:34,620 फ़ाइल है, लेकिन यह कुछ भी नहीं है copy.c. साथ करने के लिए 1468 01:09:34,620 --> 01:09:38,675 लेकिन copy.c के लिए नींव है क्योंकि पहले दो भागों, हम जा रहे हैं 1469 01:09:38,675 --> 01:09:42,000 अब इसके माध्यम से चलना है, तो आप के लिए है यह क्या करता है की एक अच्छी भावना. 1470 01:09:42,000 --> 01:09:43,640 >> और टिप्पणियों के कुछ इसे दूर दे. 1471 01:09:43,640 --> 01:09:45,120 हम पहले से ही इस में से कुछ लिखा है. 1472 01:09:45,120 --> 01:09:49,220 सबसे पहले, हमें यकीन है कि कर रहे हैं हम तीन तर्क मिलता है. 1473 01:09:49,220 --> 01:09:50,560 अगला, हम फ़ाइल नाम याद कर रहे हैं. 1474 01:09:50,560 --> 01:09:52,960 इसलिए हम इस कदम को छोड़ दिया जब हम हमारी बात कोडित - 1475 01:09:52,960 --> 01:09:54,700 जब हमारे सी.पी.. 1476 01:09:54,700 --> 01:09:56,750 लेकिन यहाँ, वे कर रहे हैं एक बिट क्लीनर यह. 1477 01:09:56,750 --> 01:09:59,350 >> वे सुनिश्चित करने के लिए जाँच कर रहे हैं में दोनों फाइलें, अच्छा कर रहे हैं 1478 01:09:59,350 --> 01:10:00,450 उन्हें खोलने के अलावा. 1479 01:10:00,450 --> 01:10:04,760 हम अभी यह सब कोड लिखा है, तो मैं कर रहा हूँ इस कोड पर ध्यान केन्द्रित करने के लिए नहीं जा रहा. 1480 01:10:04,760 --> 01:10:09,670 अगले करने के लिए विशिष्ट है कि कुछ सामान है हम प्रयोग कर रहे हैं फ़ाइलों के प्रकार जो 1481 01:10:09,670 --> 01:10:12,240 बिटमैप फ़ाइलें हैं. 1482 01:10:12,240 --> 01:10:15,660 बिटमैप फ़ाइलें कुछ मेटाडेटा है उनके साथ जुड़े. 1483 01:10:15,660 --> 01:10:20,190 >> तो बाइट्स की पहली जोड़ी फाइल के बारे में बताना. 1484 01:10:20,190 --> 01:10:23,460 वे का रंग नहीं हैं उस छवि में पिक्सेल. 1485 01:10:23,460 --> 01:10:25,120 वे फाइल के बारे में बताना. 1486 01:10:25,120 --> 01:10:28,220 और आप समस्या सेट के माध्यम से पढ़ा है, आप और अधिक जानकारी के लिए होगा 1487 01:10:28,220 --> 01:10:33,100 मेटाडाटा संरचनाओं का क्या प्रकार पर बिटमैप्स के साथ शामिल हैं. 1488 01:10:33,100 --> 01:10:39,350 >> हम यह पहले क्यों है लेकिन है कि यहीं इस कोड - के सेट. 1489 01:10:39,350 --> 01:10:42,490 हम मेटाडाटा पढ़ रहे हैं - 1490 01:10:42,490 --> 01:10:45,800 मेटाडाटा के दो टुकड़े - फाइल शीर्ष लेख और जानकारी हैडर. 1491 01:10:45,800 --> 01:10:51,030 और हम इसके बारे में कुछ हिस्सों की जाँच कर रहे हैं यकीन है कि यह एक सच बिटमैप फ़ाइल है कर 1492 01:10:51,030 --> 01:10:52,420 जारी रखने से पहले. 1493 01:10:52,420 --> 01:10:55,470 >> और फिर, इन विवरणों हम कर रहे हैं अब में जाने की जरूरत नहीं है. 1494 01:10:55,470 --> 01:10:57,720 आप समस्या सेट के माध्यम से पढ़ा है, आप इन समझ जाएगा. 1495 01:10:57,720 --> 01:11:01,370 लंबी कहानी संक्षेप में, इन बस कह रहे हैं, यह एक बिटमैप फ़ाइल है, और 1496 01:11:01,370 --> 01:11:02,810 पुष्टि है कि. 1497 01:11:02,810 --> 01:11:05,180 >> अगला, हम उन लिख रहे हैं बाहर फाइल करने के लिए. 1498 01:11:05,180 --> 01:11:05,660 हम यहाँ देखते हैं कि. 1499 01:11:05,660 --> 01:11:06,910 हम बाहर सूचक को लिख रहे हैं. 1500 01:11:06,910 --> 01:11:09,260 1501 01:11:09,260 --> 01:11:11,320 अगला, हम गद्दी का निर्धारण कर रहे हैं. 1502 01:11:11,320 --> 01:11:15,240 तो फिर, जैसा ख़ासियत के साथ है एक बिटमैप फ़ाइल, कुछ लाइनों में शामिल 1503 01:11:15,240 --> 01:11:16,840 अंत में पैडिंग. 1504 01:11:16,840 --> 01:11:19,000 और आप समस्या सेट के माध्यम से पढ़ा है, आप गद्दी के बारे में अधिक जानकारी मिलेगी. 1505 01:11:19,000 --> 01:11:22,330 इस गद्दी को खोजने के लिए सूत्र है. 1506 01:11:22,330 --> 01:11:23,610 >> याद रखना महत्वपूर्ण - 1507 01:11:23,610 --> 01:11:29,720 आप एक बिटमैप का आकार बदलने जब , गद्दी परिवर्तन फ़ाइल. 1508 01:11:29,720 --> 01:11:31,970 आप एक का आकार परिवर्तित करते हैं , गद्दी परिवर्तन फ़ाइल. 1509 01:11:31,970 --> 01:11:34,310 यह होने जा रहा है कभी नहीं 3 से अधिक - 1510 01:11:34,310 --> 01:11:36,510 यह 3 के माध्यम से समावेशी 0 हो जाएगा. 1511 01:11:36,510 --> 01:11:38,930 लेकिन अगर आप का आकार बदलने जब कुछ, गद्दी परिवर्तन. 1512 01:11:38,930 --> 01:11:47,100 >> मैं केवल उस पंक्ति में एक पिक्सेल है, तो मैं , गद्दी की तीन बाइट्स की जरूरत है क्योंकि 1513 01:11:47,100 --> 01:11:51,190 प्रत्येक पंक्ति चार के गुणकों हो गया है एक बिटमैप फ़ाइल में लंबे बाइट्स. 1514 01:11:51,190 --> 01:11:56,120 लेकिन मैं यह दोगुना है, एक पिक्सेल से जाने के लिए दो पिक्सेल करने के लिए, जिनमें से प्रत्येक की, 1515 01:11:56,120 --> 01:11:59,510 हम कहते हैं, एक बाइट, तो मैं की जरूरत है बनाने के लिए गद्दी के दो बाइट्स 1516 01:11:59,510 --> 01:12:00,970 चार के लिए कि बराबर. 1517 01:12:00,970 --> 01:12:04,200 >> तो मैं कुछ का आकार बदलने के लिए, मैं राशि बदलने की जरूरत 1518 01:12:04,200 --> 01:12:06,551 गद्दी की मेरे पास है. 1519 01:12:06,551 --> 01:12:08,100 कि हर किसी को मतलब? 1520 01:12:08,100 --> 01:12:12,020 1521 01:12:12,020 --> 01:12:18,720 अगला, हम एक पंक्ति पर पुनरावृति, या सभी पंक्तियों के माध्यम से. 1522 01:12:18,720 --> 01:12:21,400 और फिर हम के माध्यम से पुनरावृति प्रत्येक पंक्ति में प्रत्येक स्तंभ. 1523 01:12:21,400 --> 01:12:25,330 हम जैसे इस बिटमैप इलाज कर रहे हैं एक ग्रिड, जैसे हम व्यवहार किया है 1524 01:12:25,330 --> 01:12:26,490 15 में बोर्ड. 1525 01:12:26,490 --> 01:12:29,200 >> जैसा कि हम ईंटों जब इलाज हम उन्हें स्क्रीन पर मुद्रित. 1526 01:12:29,200 --> 01:12:31,350 पंक्तियों और स्तंभों का एक ग्रिड. 1527 01:12:31,350 --> 01:12:32,350 तब - हम यह देखा. 1528 01:12:32,350 --> 01:12:33,840 हम वास्तव में सिर्फ इस कोडित. 1529 01:12:33,840 --> 01:12:35,780 हम कुछ अस्थायी भंडारण बनाया. 1530 01:12:35,780 --> 01:12:38,710 हम तो वहाँ में पढ़ा है, और हम इसे लिखने के बाहर. 1531 01:12:38,710 --> 01:12:42,680 यह हम सिर्फ था कि वास्तव में क्या है. 1532 01:12:42,680 --> 01:12:46,760 >> मैंने कहा अगला, क्योंकि प्रत्येक पंक्ति कुछ padding में समाप्त होता है, हम 1533 01:12:46,760 --> 01:12:48,260 उस गद्दी पर छोड़ - 1534 01:12:48,260 --> 01:12:51,000 पुरानी गद्दी. 1535 01:12:51,000 --> 01:12:52,630 और फिर हम इसे वापस जोड़ें. 1536 01:12:52,630 --> 01:12:55,140 इस मामले में, हम बना रहे हैं एक ही सटीक फ़ाइल. 1537 01:12:55,140 --> 01:12:56,180 हम सिर्फ यह नकल कर रहे हैं. 1538 01:12:56,180 --> 01:12:57,700 इसलिए इस लाइन मूर्ख की तरह है. 1539 01:12:57,700 --> 01:12:59,660 हम कर सकते थे सचमुच बस अंदर गद्दी डाल 1540 01:12:59,660 --> 01:13:04,290 >> लेकिन आप फ़ाइल का आकार बदलने के लिए, आप अभी भी इस लाइन चाहते हैं? 1541 01:13:04,290 --> 01:13:08,510 1542 01:13:08,510 --> 01:13:11,560 हम एक फ़ाइल के आकार को बदल तो हैं, हम अभी भी छोड़ना चाहते हैं 1543 01:13:11,560 --> 01:13:12,810 पुरानी गद्दी पर? 1544 01:13:12,810 --> 01:13:15,170 1545 01:13:15,170 --> 01:13:15,970 >> छात्र 74: हाँ. 1546 01:13:15,970 --> 01:13:17,090 >> जेसन Hirschhorn: तो हम करते हैं. 1547 01:13:17,090 --> 01:13:19,290 यह, फिर से, सौदों क्योंकि स्रोत फ़ाइल के साथ. 1548 01:13:19,290 --> 01:13:21,570 हम गद्दी के बारे में परवाह नहीं है स्रोत फ़ाइल से. 1549 01:13:21,570 --> 01:13:23,410 हम अगली पंक्ति में जाना चाहते हैं. 1550 01:13:23,410 --> 01:13:28,850 लेकिन हम बस वापस मत डालो गद्दी के पुराने राशि. 1551 01:13:28,850 --> 01:13:31,540 हम वापस खड़ा करने की जरूरत गद्दी की नई राशि. 1552 01:13:31,540 --> 01:13:35,810 >> तो हम एक का आकार बदल रहे हैं जब फ़ाइल, हम अभी भी पर छोड़ करना चाहते हैं 1553 01:13:35,810 --> 01:13:38,270 पुरानी फाइल में गद्दी - क्या हम से में पढ़ रहे हैं. 1554 01:13:38,270 --> 01:13:40,370 लेकिन हम क्या लिख ​​रहे हैं, हम जा रहे हैं कुछ अलग वापस खड़ा करने की जरूरत के लिए 1555 01:13:40,370 --> 01:13:41,890 गद्दी की संख्या कि हम निर्धारित किया है. 1556 01:13:41,890 --> 01:13:42,780 हाँ. 1557 01:13:42,780 --> 01:13:44,550 >> छात्र 75: उन दो का आदेश लाइनों सही, कोई फर्क नहीं पड़ता? 1558 01:13:44,550 --> 01:13:46,160 आप देख रहे हैं क्योंकि अलग फ़ाइलों. 1559 01:13:46,160 --> 01:13:46,620 >> जेसन Hirschhorn: बिल्कुल. 1560 01:13:46,620 --> 01:13:48,220 इन दो लाइनों का आदेश कोई फर्क नहीं पड़ता. 1561 01:13:48,220 --> 01:13:49,790 हम इस पंक्ति में लिखें. 1562 01:13:49,790 --> 01:13:51,430 इस फाइल के लिए यहाँ है हम करने के लिए लिख रहे हैं. 1563 01:13:51,430 --> 01:13:54,370 यह महत्वपूर्ण है, इसलिए हम मिल गद्दी की सही मात्रा में. 1564 01:13:54,370 --> 01:13:57,560 इस में फाइल के साथ सौदा किया है. 1565 01:13:57,560 --> 01:13:58,560 हम सही छोड़ना चाहते हैं गद्दी पर. 1566 01:13:58,560 --> 01:13:59,470 >> हम पढ़ने के लिए नहीं चाहते हैं - 1567 01:13:59,470 --> 01:14:01,500 हम एक समय में एक बाइट पढ़ रहे हैं, हम उन गद्दी बाइट्स के बारे में परवाह नहीं है. 1568 01:14:01,500 --> 01:14:04,070 हम अगली पंक्ति में ले जाना चाहते हैं. 1569 01:14:04,070 --> 01:14:11,800 अंत में लुसी हमारे लिए दे दिया है, जैसे हम फाइलों को बंद करने और 0 वापसी. 1570 01:14:11,800 --> 01:14:13,890 तो इस copy.c. है 1571 01:14:13,890 --> 01:14:17,850 और हम वास्तव में लिखा था - हम में से अधिकांश खर्च की अनिवार्य रूप से, इस लेखन अनुभाग. 1572 01:14:17,850 --> 01:14:18,740 >> आप यह कर दिया. 1573 01:14:18,740 --> 01:14:22,440 तो उम्मीद है कि आप एक अच्छी समझ है यहां क्या हो रहा है की. 1574 01:14:22,440 --> 01:14:25,890 बड़ा फर्क है, ईमानदारी से, बस है साथ सौदों कि इस पहले भाग 1575 01:14:25,890 --> 01:14:29,970 बिटमैप फ़ाइलों के peculiarities. 1576 01:14:29,970 --> 01:14:33,570 तो मैं, मेरी अगली स्लाइड के रूप में है हम क्या करने की जरूरत है? 1577 01:14:33,570 --> 01:14:35,510 ठीक है, चलो whodunit के बारे में सोचते हैं. 1578 01:14:35,510 --> 01:14:38,080 >> और किसी के लिए जो माध्यम से पढ़ा समस्या सेट, हमें क्या 1579 01:14:38,080 --> 01:14:41,410 whodunit में क्या करने की जरूरत है? 1580 01:14:41,410 --> 01:14:42,080 बस. 1581 01:14:42,080 --> 01:14:42,460 Aleja. 1582 01:14:42,460 --> 01:14:48,570 >> Aleja: तुम भाग ले सकते हैं लाल अर्थ है कि प्रत्येक पिक्सेल की. 1583 01:14:48,570 --> 01:14:49,730 और फिर - 1584 01:14:49,730 --> 01:14:50,730 एक तरह से? 1585 01:14:50,730 --> 01:14:51,860 >> जेसन Hirschhorn: ठीक है. 1586 01:14:51,860 --> 01:14:54,460 इसलिए प्रत्येक के हिस्से के बाहर ले लाल अर्थ है कि पिक्सेल. 1587 01:14:54,460 --> 01:14:57,234 यही कारण है कि यह सब बंद है, लेकिन नहीं है. 1588 01:14:57,234 --> 01:14:59,780 >> छात्र 76: ठीक है, वहाँ यह करने के लिए अलग अलग तरीकों से. 1589 01:14:59,780 --> 01:14:59,870 >> जेसन Hirschhorn: ठीक है. 1590 01:14:59,870 --> 01:15:03,070 मुझे एक रास्ता दे. 1591 01:15:03,070 --> 01:15:08,240 >> छात्र 76: सब लाल बाहर ले जाओ, और फिर जोर देना नीले और हरे रंग. 1592 01:15:08,240 --> 01:15:10,010 >> जेसन Hirschhorn: ठीक है. 1593 01:15:10,010 --> 01:15:11,830 इसलिए इन दोनों तरीकों दिया - 1594 01:15:11,830 --> 01:15:15,210 हम इसे एक पिक्सेल देने की तरह लगता है, यह एक लाल, नीले और हरे रंग स्तर है. 1595 01:15:15,210 --> 01:15:19,350 हम रिश्तेदार के स्तर का बदलना चाहते हैं निर्भर करता है, लाल, नीले और हरे रंग 1596 01:15:19,350 --> 01:15:20,740 कि पिक्सेल पर. 1597 01:15:20,740 --> 01:15:28,380 इस कोड में हम बदलना चाहिए कहां रिश्तेदार, लाल, नीले और हरे रंग 1598 01:15:28,380 --> 01:15:29,720 किसी दिए गए पिक्सेल का स्तर. 1599 01:15:29,720 --> 01:15:30,600 हम इसे पढ़ा है के बाद - 1600 01:15:30,600 --> 01:15:32,520 हम इसे लिखने से पहले? 1601 01:15:32,520 --> 01:15:34,564 मुझे लाइन नंबर दे. 1602 01:15:34,564 --> 01:15:35,950 >> कई छात्रों: 83. 1603 01:15:35,950 --> 01:15:37,320 >> जेसन Hirschhorn: 83. 1604 01:15:37,320 --> 01:15:38,570 तो ठीक है यहाँ. 1605 01:15:38,570 --> 01:15:40,830 1606 01:15:40,830 --> 01:15:45,710 Whodunit के लिए, कोड आप की जरूरत लिखने के सभी अभी भी वहीं जाना चाहिए. 1607 01:15:45,710 --> 01:15:47,640 और कहा कि केवल कोड है आप लिखने की जरूरत है. 1608 01:15:47,640 --> 01:15:51,520 हमने सुना तरह, तुम सब करने की जरूरत है, क्योंकि कर, इन रिश्तेदार नीले बदल रहा है 1609 01:15:51,520 --> 01:15:54,420 प्रत्येक पिक्सेल से लाल और हरे रंग का स्तर. 1610 01:15:54,420 --> 01:15:58,250 >> आप इसे में पढ़ा है, और अब आप कर रहे हैं यह लिखने के लिए बाहर जा रहा है. 1611 01:15:58,250 --> 01:16:03,100 मैं कैसे मिलता है - मैं इस बात को अगर यहीं, ट्रिपल कहा जाता है, और यह की है 1612 01:16:03,100 --> 01:16:04,570 RGBTRIPLE लिखें - 1613 01:16:04,570 --> 01:16:08,650 खैर, हम bmp.h में देखा, तो RGBTRIPLE क्या है? 1614 01:16:08,650 --> 01:16:11,450 1615 01:16:11,450 --> 01:16:12,700 >> छात्र 77: यह एक संरचना है. 1616 01:16:12,700 --> 01:16:17,440 1617 01:16:17,440 --> 01:16:18,900 >> जेसन Hirschhorn: RGBTRIPLE एक संरचना है. 1618 01:16:18,900 --> 01:16:22,330 हम ठीक नीचे है कि यहाँ देखें. 1619 01:16:22,330 --> 01:16:26,600 और इसलिए मैं कहता हूँ, का उपयोग करना चाहता था संरचना के लाल स्तर, कैसे मैं ऐसा 1620 01:16:26,600 --> 01:16:30,005 इस संरचना के लाल स्तर तक पहुँचने? 1621 01:16:30,005 --> 01:16:37,280 >> [कक्षा अफवाहें] 1622 01:16:37,280 --> 01:16:38,530 >> छात्र 78: RGBTRIPLE.rgbtred? 1623 01:16:38,530 --> 01:16:47,250 1624 01:16:47,250 --> 01:16:48,856 >> जेसन Hirschhorn: यह सही है? 1625 01:16:48,856 --> 01:16:53,040 >> छात्र 79: यह ट्रिपल होना चाहिए बजाय RGBTRIPLE डॉट डॉट,? 1626 01:16:53,040 --> 01:16:54,120 >> जेसन Hirschhorn: ट्रिपल. 1627 01:16:54,120 --> 01:16:56,700 ट्रिपल स्थानीय चर रहा है, तो यहाँ, यहाँ कोई संकेत नहीं है. 1628 01:16:56,700 --> 01:16:58,400 तो हम बस डॉट संकेतन का उपयोग करें. 1629 01:16:58,400 --> 01:17:00,480 यह मेरे लाल के स्तर दे देंगे. 1630 01:17:00,480 --> 01:17:06,180 मैं इसे बदलना चाहते हैं, मैं सिर्फ सेट यह कुछ अलग करने के बराबर है. 1631 01:17:06,180 --> 01:17:13,190 तो फिर, कोड की इस पंक्ति तक पहुँचता यह इस संरचना के अंदर चर, और 1632 01:17:13,190 --> 01:17:15,070 हम कुछ नया करने के लिए सेट कर सकते हैं. 1633 01:17:15,070 --> 01:17:20,040 >> तो whodunit के लिए, फिर से, यह है संक्षेप में, हम क्या करने की जरूरत है. 1634 01:17:20,040 --> 01:17:21,170 बहुत आसान है. 1635 01:17:21,170 --> 01:17:25,020 बस कुछ रिश्तेदार का स्तर बदलने के लिए, और उस कोड चला जाता है जहां यह है. 1636 01:17:25,020 --> 01:17:27,720 दूसरी ओर, आकार, थोड़ा पेचीदा मामला है. 1637 01:17:27,720 --> 01:17:30,900 वास्तव में, आकार परिवर्तन शायद है इस समस्या के trickiest हिस्सा निर्धारित किया है. 1638 01:17:30,900 --> 01:17:32,720 हम इस पर जाने के लिए तीन मिनट है. 1639 01:17:32,720 --> 01:17:34,910 >> लेकिन फिर, हम पहले से ही लिखा है इस कोड की सबसे अधिक है, तो हम 1640 01:17:34,910 --> 01:17:36,500 बहुत परिचित होना चाहिए. 1641 01:17:36,500 --> 01:17:40,750 हम में क्या करना चाहते हैं कुछ बातें कर रहे हैं तुम पर पढ़ा है, आकार परिवर्तन 1642 01:17:40,750 --> 01:17:43,470 समस्या सेट? 1643 01:17:43,470 --> 01:17:45,290 आप उन्हें मुझे दे, तो हम उनके बारे में बात कर सकते हैं. 1644 01:17:45,290 --> 01:17:47,340 हम क्या करना चाहते हैं कुछ बातें क्या हैं? 1645 01:17:47,340 --> 01:17:47,970 >> छात्र 80: लंबवत रूप - 1646 01:17:47,970 --> 01:17:52,360 तो आप, यह क्षैतिज आकार बदलने के लिए है लेकिन खड़ी रूप में अच्छी तरह से इसे आकार? 1647 01:17:52,360 --> 01:17:58,475 >> जेसन Hirschhorn: तो हम दी रहे हैं अगर एक पिक्सेल, और हम एक से इसका आकार बदल करना चाहते हैं 1648 01:17:58,475 --> 01:18:03,460 दो का कारक है, अब यह होने की जरूरत क्षैतिज आकार बदला और आकार बदला 1649 01:18:03,460 --> 01:18:05,220 खड़ी. 1650 01:18:05,220 --> 01:18:06,640 कि मतलब? 1651 01:18:06,640 --> 01:18:07,060 हाँ. 1652 01:18:07,060 --> 01:18:09,300 इसलिए कि शायद सबसे बड़ी चुनौती है. 1653 01:18:09,300 --> 01:18:10,430 और हम एक सेकंड में उस के बारे में बात करेंगे. 1654 01:18:10,430 --> 01:18:11,065 हाँ. 1655 01:18:11,065 --> 01:18:15,270 >> छात्र 81: मैं इसके बारे में सोचा रास्ता आप प्रिंट इसे बाहर की जरूरत थी - 1656 01:18:15,270 --> 01:18:15,490 >> जेसन Hirschhorn: रुको. 1657 01:18:15,490 --> 01:18:17,580 तुमने क्या हमें नहीं बताया. 1658 01:18:17,580 --> 01:18:20,620 हम तर्क में बात करने जा रहे हैं. 1659 01:18:20,620 --> 01:18:21,870 >> छात्र 81: ठीक है. 1660 01:18:21,870 --> 01:18:25,090 1661 01:18:25,090 --> 01:18:27,410 सवाल क्या था? 1662 01:18:27,410 --> 01:18:28,892 >> जेसन Hirschhorn: तुम बस अपना हाथ उठाया. 1663 01:18:28,892 --> 01:18:31,600 इसमें कोई संदेह नहीं था. 1664 01:18:31,600 --> 01:18:32,520 मुझे यह प्रस्तुत करते हैं. 1665 01:18:32,520 --> 01:18:34,560 मुझे तो बस इस संक्षिप्त चर्चा की. 1666 01:18:34,560 --> 01:18:38,400 तो हम, हम करने के लिए एक पिक्सेल चाहते है दोनों क्षैतिज, इसे दोहराने और 1667 01:18:38,400 --> 01:18:39,360 खड़ी. 1668 01:18:39,360 --> 01:18:48,920 तो आदर्श क्या हम यहाँ क्या है, हम हमारे पिक्सेल में पढ़ा है, हम इसे लिखना 1669 01:18:48,920 --> 01:18:51,690 कई बार हालांकि कई. 1670 01:18:51,690 --> 01:18:54,720 >> लेकिन फिर हम, हमारे यहाँ चाल है क्योंकि तो हम करने के लिए छोड़ना चाहते हैं 1671 01:18:54,720 --> 01:18:57,660 अगली पंक्ति और इसे लिखने अगली पंक्ति की शुरुआत. 1672 01:18:57,660 --> 01:19:02,960 इसलिए हम दोनों को दोहराने के लिए चाहते हैं क्षैतिज और खड़ी, क्या है 1673 01:19:02,960 --> 01:19:05,050 ऐसा करने के लिए एक अच्छा तरीका है - 1674 01:19:05,050 --> 01:19:06,780 अच्छा एक है, हालांकि ऐसा करने के लिए? 1675 01:19:06,780 --> 01:19:11,950 इसलिए हम लगातार लेने की जरूरत नहीं है हमारे फ़ाइल आसपास बातें करने के लिए जगह. 1676 01:19:11,950 --> 01:19:14,360 >> यह सवाल नहीं हो सकता मतलब नहीं बनता, लेकिन मुझे लगता है कि एक 1677 01:19:14,360 --> 01:19:15,800 यह करने के लिए जवाब में मदद मिलेगी. 1678 01:19:15,800 --> 01:19:17,210 >> छात्र 82: एक सरणी बनाएँ? 1679 01:19:17,210 --> 01:19:20,090 >> जेसन Hirschhorn: तो चलो लगता है कि एक पंक्ति के रूप में प्रत्येक फाइल की. 1680 01:19:20,090 --> 01:19:22,550 की पंक्तियों के संदर्भ में सोचते हैं. 1681 01:19:22,550 --> 01:19:26,670 हम अपने छोटे से हमारी पहली पंक्ति है, तो तस्वीर है, हम उस पंक्ति बना सकते हैं 1682 01:19:26,670 --> 01:19:30,640 एक बड़ी तस्वीर से एक बड़ी पंक्ति में, और फिर हालांकि उस पंक्ति को दोहराने 1683 01:19:30,640 --> 01:19:34,250 यह दोहराया जा करने की जरूरत है कई बार, बल्कि पिक्सेल द्वारा पिक्सेल जा रहा से, 1684 01:19:34,250 --> 01:19:37,260 जब भ्रमित हो जाता है जो फाइलों के साथ काम कर रहे. 1685 01:19:37,260 --> 01:19:38,730 >> हम था क्योंकि अगर - 1686 01:19:38,730 --> 01:19:41,260 मैं अंतरिक्ष के बाहर चल रहा हूँ. 1687 01:19:41,260 --> 01:19:46,490 यह हमारी फ़ाइल है, और अगर हमारे पास है कि वहाँ एक पिक्सेल, और हम यह करना चाहते हैं 1688 01:19:46,490 --> 01:19:49,840 वहीं हम अभी भी कुछ बातें हैं वहाँ पर हम कर रहे हैं जाने के लिए जब कि जरूरत 1689 01:19:49,840 --> 01:19:51,450 लेखन और हमारी नई फ़ाइल बनाने - 1690 01:19:51,450 --> 01:19:53,250 हमारे फ़ाइल है कि दो बार के रूप में बड़ा है. 1691 01:19:53,250 --> 01:19:56,820 >> लेकिन यह फाइल कार्यों के साथ वास्तव में मुश्किल है नई लाइनों के लिए चारों ओर छोड़ करने के लिए 1692 01:19:56,820 --> 01:20:00,260 ऐसे ही, और फिर यहाँ वापस जाओ और वहाँ में बातें करना. 1693 01:20:00,260 --> 01:20:04,500 यह कुछ करने के लिए लगभग असंभव है ऐसे ही, कि अगर समझ में आता. 1694 01:20:04,500 --> 01:20:10,180 हम पंक्तियों के रूप में लगता है तो, हम कर सकते हैं हमारे पंक्ति ले, और फिर यह डाल - 1695 01:20:10,180 --> 01:20:11,720 खड़ी पंक्तियों को दोहराने. 1696 01:20:11,720 --> 01:20:15,860 >> और कहा कि हम आकार बदलने के साथ सौदा है खड़ी बल्कि क्षैतिज से. 1697 01:20:15,860 --> 01:20:18,810 उस तरह की जल्दी थी, और थोड़ा भ्रमित. 1698 01:20:18,810 --> 01:20:22,375 दुर्भाग्य से हमारे समय नहीं है. 1699 01:20:22,375 --> 01:20:27,340 मैं तुम लोगों के लिए बाहर खड़े होंगे यहाँ के बारे में प्रश्न हैं जो 1700 01:20:27,340 --> 01:20:30,500 की वसूली सहित समस्या सेट,. 1701 01:20:30,500 --> 01:20:32,320 >> तो चलो अब के लिए स्थगित करते हैं. 1702 01:20:32,320 --> 01:20:34,480 और फिर, आप कोई प्रश्न हैं, हम बाहर चैट कर सकते हैं. 1703 01:20:34,480 --> 01:20:38,294