2 00:00:00,000 --> 00:00:01,860 >> HOPARLÖR 1: Bir nəzər salaq CS50 kitabxana, 3 00:00:01,860 --> 00:00:05,190 xüsusilə onun GetInt funksiyası. 4 00:00:05,190 --> 00:00:07,820 Burada biz faktiki mənbə var GetInt üçün kodu. 5 00:00:07,820 --> 00:00:12,050 Və bu çox uzun deyil ki, qeyd, və bu ən bir müddət loop təşkil - 6 00:00:12,050 --> 00:00:15,620 ki, bir sonsuz loop - yalnız biz, həqiqətən, bir dəfə bir dəyər qaytarır 7 00:00:15,620 --> 00:00:17,400 biz gözlənilir nə əldə. 8 00:00:17,400 --> 00:00:18,700 Bunun vasitəsilə gəzmək edək. 9 00:00:18,700 --> 00:00:21,650 >> Ilk burada up bildiriş loop başlayır. 10 00:00:21,650 --> 00:00:25,390 Biz kodu bir xətt ki, növbəti edək ki, həqiqətən, GetString çağırır 11 00:00:25,390 --> 00:00:29,620 və qaytarılması dəyər saklar dəyişən, növü simli, line çağırıb. 12 00:00:29,620 --> 00:00:31,210 Biz sonra ağlı başında olma çek bir az. 13 00:00:31,210 --> 00:00:35,770 Line == null, onda biz maraqla INT_MAX qayıtmaq. 14 00:00:35,770 --> 00:00:40,140 >> İndi INT_MAX çıxır ki bir xüsusi daimi başqa elan 15 00:00:40,140 --> 00:00:44,030 ki, ən böyük mümkün ifadə Bir təmsil edə bilər ki, int 16 00:00:44,030 --> 00:00:45,160 bu kimi proqram. 17 00:00:45,160 --> 00:00:49,430 İndi biz özbaşına qayıtmaq üçün qərar qəbul etdik Bir sentinel dəyər kimi INT_MAX 18 00:00:49,430 --> 00:00:53,120 növ, biz kimi qorunub etdik ki, bir səhv məna meydana gəldi. 19 00:00:53,120 --> 00:00:56,230 Beləliklə, biz ödəmək qiymət, əlbəttə, ki, GetInt yəqin bilməz 20 00:00:56,230 --> 00:01:01,440 həqiqətən kimi böyük bir sıra qayıtmaq INT_MAX, bu istəsə, çünki, 21 00:01:01,440 --> 00:01:04,730 ki qaytarılması dəyəri həqiqətən olmalıdır zəng tərəfindən təfsir edilə - 22 00:01:04,730 --> 00:01:06,260 kim GetInt istifadə edir - 23 00:01:06,260 --> 00:01:09,340 bir növ bir səhv kimi. 24 00:01:09,340 --> 00:01:13,840 >> Sonra, mən bəyan etdik ki, görürsünüz bir int n və bir char c. 25 00:01:13,840 --> 00:01:18,030 Kodu Bu növbəti line, mən bir zəng sscanf adlı funksiyası, keçən 26 00:01:18,030 --> 00:01:18,970 dörd dəlilləri. 27 00:01:18,970 --> 00:01:25,110 simli olan xətt, istifadəçi bir format olan tipli, "% i% c", 28 00:01:25,110 --> 00:01:28,850 Mən istifadəçi güc gözləyirik alıram ki, simli ünvanı ilə təqib növü, 29 00:01:28,850 --> 00:01:30,920 n, və c ünvanı. 30 00:01:30,920 --> 00:01:34,860 Həyat İndi sscanf məqsədi həqiqətən üçün axtarır simli scan 31 00:01:34,860 --> 00:01:38,700 xüsusi format ki, proqramçı ikinci arqument kimi müəyyən etmişdir. 32 00:01:38,700 --> 00:01:42,020 Bu halda,%-i təşkil edir ,% c var. 33 00:01:42,020 --> 00:01:46,700 Sscanf da int görür əgər İstifadəçilərin input ki, int saxlanılır 34 00:01:46,700 --> 00:01:50,270 n adlı dəyişən daxilində çünki biz üçüncü kimi təmin 35 00:01:50,270 --> 00:01:52,810 n ünvanını sscanf üçün dəlil. 36 00:01:52,810 --> 00:01:56,870 Hansı sscanf həqiqətən bilərsiniz deməkdir ki, orada, və orada dəyər yeniləmə. 37 00:01:56,870 --> 00:01:59,990 >> İndi halda istifadəçi növləri daha bir şey 38 00:01:59,990 --> 00:02:01,220 bir və ya daha çox rəqəm daha - 39 00:02:01,220 --> 00:02:03,570 başqa sözlə, bir növ bir char - 40 00:02:03,570 --> 00:02:07,940 onun ünvanı ikinci dəyişən c, biz onun dördüncü kimi sscanf keçib 41 00:02:07,940 --> 00:02:10,560 arqument də yaşadığı olunacaq. 42 00:02:10,560 --> 00:02:14,220 İndi üçün yoxlanılması ayaq istifadəçi əlavə karakter 43 00:02:14,220 --> 00:02:17,360 ki, o əməkdaşlıq etməsə, və yalnız bir int daha çox növləri, 44 00:02:17,360 --> 00:02:20,530 biz bu aşkar edə bilərsiniz şəkildə, bu halda, sscanf çünki 45 00:02:20,530 --> 00:02:24,860 signifying, 2 qayıtmaq üçün gedir ki, Bu placeholders həm dolu idi 46 00:02:24,860 --> 00:02:25,600 dəyərləri ilə. 47 00:02:25,600 --> 00:02:30,360 Amma biz əvəzinə sscanf ümid edirik yalnız istifadəçi deməkdir ki, 1 qaytarır 48 00:02:30,360 --> 00:02:31,630 bir int təmin. 49 00:02:31,630 --> 00:02:34,480 >> Nə edəcəyik əgər sscanf həqiqətən 1 qaytarır? 50 00:02:34,480 --> 00:02:39,150 Yaxşı, biz dərhal xətt azad ki, istifadəçi sonra tipli və biz 51 00:02:39,150 --> 00:02:42,670 dərhal olan, n qayıtmaq bir int kazanılmış. 52 00:02:42,670 --> 00:02:47,180 Başqa, sscanf 1 qayıtmaq, vermir və əgər istifadəçi buna görə də əməkdaşlıq etmədi, 53 00:02:47,180 --> 00:02:51,470 biz hələ xətt azad, lakin biz indi yeniden istifadəçi təklif. 54 00:02:51,470 --> 00:02:55,390 Və biz daxilində hələ istəyirik, çünki başqa sonsuz loop, proses 55 00:02:55,390 --> 00:03:00,190 yenidən başlamaq, və bəlkə yenidən, və bəlkə yenə qədər istifadəçi həqiqətən 56 00:03:00,190 --> 00:03:01,500 Bizə bir int edir. 57 00:03:01,500 --> 00:03:21,490