2 00:00:00,000 --> 00:00:01,860 >> स्पीकर 1: चलो एक नज़र रखना CS50 पुस्तकालय में, 3 00:00:01,860 --> 00:00:05,190 विशेष रूप से अपने GetInt समारोह. 4 00:00:05,190 --> 00:00:07,820 यहाँ हम वास्तविक स्रोत है GetInt के लिए कोड. 5 00:00:07,820 --> 00:00:12,050 और यह बहुत लंबा नहीं है कि सूचना, और इसमें से अधिकांश एक समय पाश का गठन - 6 00:00:12,050 --> 00:00:15,620 उस पर एक अनंत लूप - कि केवल हम वास्तव में कर लें, कोई मान देता है 7 00:00:15,620 --> 00:00:17,400 हम क्या उम्मीद हो गया. 8 00:00:17,400 --> 00:00:18,700 चलो यह माध्यम से चलते हैं. 9 00:00:18,700 --> 00:00:21,650 >> यहाँ पहली बार नोटिस पाश शुरू होता है. 10 00:00:21,650 --> 00:00:25,390 हम कोड की एक पंक्ति है कि अगले नोटिस कि वास्तव में, GetString कॉल 11 00:00:25,390 --> 00:00:29,620 और एक में वापसी मान संग्रहीत चर, प्रकार स्ट्रिंग की, रेखा कहा जाता है. 12 00:00:29,620 --> 00:00:31,210 हम तो एक मानसिक स्वास्थ्य की जांच के एक सा है. 13 00:00:31,210 --> 00:00:35,770 लाइन == बातिल है, तो हम मजे की बात है INT_MAX वापसी. 14 00:00:35,770 --> 00:00:40,140 >> अब यह INT_MAX पता चला है कि एक विशेष लगातार दूसरी जगहों घोषित 15 00:00:40,140 --> 00:00:44,030 कि सबसे बड़ी संभव निर्दिष्ट करता है तुम एक में प्रतिनिधित्व कर सकते हैं कि int 16 00:00:44,030 --> 00:00:45,160 इस तरह के कार्यक्रम. 17 00:00:45,160 --> 00:00:49,430 अब हम मनमाने ढंग से लौटने का फैसला किया है के एक प्रहरी मूल्य के रूप में INT_MAX 18 00:00:49,430 --> 00:00:53,120 प्रकार, हम के रूप में आरक्षित किया है कि एक एक त्रुटि अर्थ हुई है. 19 00:00:53,120 --> 00:00:56,230 इसलिए हम मूल्य का भुगतान, ज़ाहिर है, कि GetInt जाहिरा तौर पर नहीं कर सकते 20 00:00:56,230 --> 00:01:01,440 वास्तव में के रूप में बड़े रूप में एक संख्या में वापसी INT_MAX, यह करना चाहता है क्योंकि अगर, 21 00:01:01,440 --> 00:01:04,730 कि वापसी मान सच में करना चाहिए फोन करने वाले ने व्याख्या की जानी - 22 00:01:04,730 --> 00:01:06,260 जो कोई भी GetInt इस्तेमाल कर रहा है - 23 00:01:06,260 --> 00:01:09,340 किसी प्रकार की कोई त्रुटि के रूप में. 24 00:01:09,340 --> 00:01:13,840 >> अगला, मैं घोषणा की है कि नोटिस एक पूर्णांक n और एक चार ग. 25 00:01:13,840 --> 00:01:18,030 कोड के इस अगली पंक्ति में, मैं एक कॉल sscanf बुलाया समारोह में गुजर 26 00:01:18,030 --> 00:01:18,970 चार तर्क. 27 00:01:18,970 --> 00:01:25,110 स्ट्रिंग है जो रेखा, उपयोगकर्ता एक प्रारूप है जिसमें लिखा है, "% i% ग", 28 00:01:25,110 --> 00:01:28,850 मैं उपयोगकर्ता हो सकता है उम्मीद कर रहा हूँ कि स्ट्रिंग के पते के बाद प्रकार, 29 00:01:28,850 --> 00:01:30,920 एन, और सी का पता. 30 00:01:30,920 --> 00:01:34,860 जीवन में अब चलो sscanf उद्देश्य वास्तव में है की तलाश में एक स्ट्रिंग स्कैन करने के लिए 31 00:01:34,860 --> 00:01:38,700 विशेष प्रारूप कि प्रोग्रामर कि दूसरा तर्क के रूप में निर्दिष्ट किया गया है. 32 00:01:38,700 --> 00:01:42,020 इस मामले में,% मैं में है ,% ग के रूप में वहाँ. 33 00:01:42,020 --> 00:01:46,700 Sscanf में एक पूर्णांक मुठभेड़ों तो अगर उपयोगकर्ता के इनपुट, कि INT संग्रहीत किया जाएगा 34 00:01:46,700 --> 00:01:50,270 n बुलाया चर, के अंदर क्योंकि हम तृतीय के रूप में प्रदान की गई है 35 00:01:50,270 --> 00:01:52,810 n के पते sscanf के लिए तर्क. 36 00:01:52,810 --> 00:01:56,870 जो sscanf वास्तव में जा सकते हैं इसका मतलब है कि वहाँ, और उसमें मान अद्यतन. 37 00:01:56,870 --> 00:01:59,990 >> अब इस मामले में उपयोगकर्ता प्रकार अधिक कुछ में 38 00:01:59,990 --> 00:02:01,220 एक या एक से अधिक अंक की तुलना में - 39 00:02:01,220 --> 00:02:03,570 दूसरे शब्दों में, किसी प्रकार की एक चार - 40 00:02:03,570 --> 00:02:07,940 जिसका पता है कि दूसरे चर सी, हम अपनी चौथी रूप sscanf में पारित 41 00:02:07,940 --> 00:02:10,560 तर्क भी बसा दिया जाएगा. 42 00:02:10,560 --> 00:02:14,220 अब एक के लिए जाँच के ऊपर उपयोगकर्ता से अतिरिक्त चरित्र है 43 00:02:14,220 --> 00:02:17,360 कि वह या वह सहयोग नहीं करता है, और सिर्फ एक पूर्णांक से अधिक में प्रकार, 44 00:02:17,360 --> 00:02:20,530 हम इस में यह पता लगाने में सक्षम हो जाएगा ढंग, उस मामले में, sscanf क्योंकि 45 00:02:20,530 --> 00:02:24,860 वाचक, 2 वापस करने के लिए जा रहा है कि प्लेसहोल्डर्स के दोनों भर गया 46 00:02:24,860 --> 00:02:25,600 मूल्यों के साथ. 47 00:02:25,600 --> 00:02:30,360 लेकिन हम बजाय कि sscanf उम्मीद कर रहे हैं केवल उपयोगकर्ता, जिसका मतलब है 1 रिटर्न 48 00:02:30,360 --> 00:02:31,630 एक पूर्णांक प्रदान की. 49 00:02:31,630 --> 00:02:34,480 >> हम क्या करते हैं अगर sscanf वास्तव में 1 देता है? 50 00:02:34,480 --> 00:02:39,150 ठीक है, हम तुरंत लाइन मुक्त है कि उपयोगकर्ता तब में टाइप करें, और हम 51 00:02:39,150 --> 00:02:42,670 तुरंत होने, एन लौटने एक पूर्णांक मिल गया. 52 00:02:42,670 --> 00:02:47,180 वरना, sscanf 1 वापसी, और नहीं करता है उपयोगकर्ता इसलिए सहयोग नहीं किया, 53 00:02:47,180 --> 00:02:51,470 हम अभी भी लाइन मुक्त है, लेकिन हम अब पुन: प्रयास करने के लिए संकेत. 54 00:02:51,470 --> 00:02:55,390 और हम उस के अंदर अभी भी कर रहे हैं क्योंकि अन्यथा अनंत लूप, प्रक्रिया 55 00:02:55,390 --> 00:03:00,190 फिर से शुरू, और शायद फिर से करेंगे, और शायद फिर से, जब तक उपयोगकर्ता वास्तव में 56 00:03:00,190 --> 00:03:01,500 हमें एक int प्रदान करता है. 57 00:03:01,500 --> 00:03:21,490