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 >> এর পরে, আমি ঘোষণা করেছি নোটিশ কোন int এন এবং একটি গৃহস্থালি গ. 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 স্ট্রিং যা লাইন, ব্যবহারকারীর একটি ফরম্যাট যা টাইপ করা, "% আমি% গ", 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 encounters সুতরাং যদি ব্যবহারকারীর ইনপুট, যে int-সংরক্ষণ করা হবে 34 00:01:46,700 --> 00:01:50,270 এন নামক পরিবর্তনশীল, ভেতরে কারণ আমরা তৃতীয় হিসাবে প্রদান করে থাকেন 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 যে সে সহযোগিতা না হয়, তাহলে, এবং ঠিক কোন int বেশী এ ধরনের, 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 কোন int দেওয়া. 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 অবিলম্বে হচ্ছে, এন ফিরে কোন int অর্জিত. 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