HOPARLÖR 1: Bir nəzər salaq CS50 kitabxana, xüsusilə onun GetInt funksiyası. Burada biz faktiki mənbə var GetInt üçün kodu. Və bu çox uzun deyil ki, qeyd, və bu ən bir müddət loop təşkil - ki, bir sonsuz loop - yalnız biz, həqiqətən, bir dəfə bir dəyər qaytarır biz gözlənilir nə əldə. Bunun vasitəsilə gəzmək edək. Ilk burada up bildiriş loop başlayır. Biz kodu bir xətt ki, növbəti edək ki, həqiqətən, GetString çağırır və qaytarılması dəyər saklar dəyişən, növü simli, line çağırıb. Biz sonra ağlı başında olma çek bir az. Line == null, onda biz maraqla INT_MAX qayıtmaq. İndi INT_MAX çıxır ki bir xüsusi daimi başqa elan ki, ən böyük mümkün ifadə Bir təmsil edə bilər ki, int bu kimi proqram. İndi biz özbaşına qayıtmaq üçün qərar qəbul etdik Bir sentinel dəyər kimi INT_MAX növ, biz kimi qorunub etdik ki, bir səhv məna meydana gəldi. Beləliklə, biz ödəmək qiymət, əlbəttə, ki, GetInt yəqin bilməz həqiqətən kimi böyük bir sıra qayıtmaq INT_MAX, bu istəsə, çünki, ki qaytarılması dəyəri həqiqətən olmalıdır zəng tərəfindən təfsir edilə - kim GetInt istifadə edir - bir növ bir səhv kimi. Sonra, mən bəyan etdik ki, görürsünüz bir int n və bir char c. Kodu Bu növbəti line, mən bir zəng sscanf adlı funksiyası, keçən dörd dəlilləri. simli olan xətt, istifadəçi bir format olan tipli, "% i% c", Mən istifadəçi güc gözləyirik alıram ki, simli ünvanı ilə təqib növü, n, və c ünvanı. Həyat İndi sscanf məqsədi həqiqətən üçün axtarır simli scan xüsusi format ki, proqramçı ikinci arqument kimi müəyyən etmişdir. Bu halda,%-i təşkil edir ,% c var. Sscanf da int görür əgər İstifadəçilərin input ki, int saxlanılır n adlı dəyişən daxilində çünki biz üçüncü kimi təmin n ünvanını sscanf üçün dəlil. Hansı sscanf həqiqətən bilərsiniz deməkdir ki, orada, və orada dəyər yeniləmə. İndi halda istifadəçi növləri daha bir şey bir və ya daha çox rəqəm daha - başqa sözlə, bir növ bir char - onun ünvanı ikinci dəyişən c, biz onun dördüncü kimi sscanf keçib arqument də yaşadığı olunacaq. İndi üçün yoxlanılması ayaq istifadəçi əlavə karakter ki, o əməkdaşlıq etməsə, və yalnız bir int daha çox növləri, biz bu aşkar edə bilərsiniz şəkildə, bu halda, sscanf çünki signifying, 2 qayıtmaq üçün gedir ki, Bu placeholders həm dolu idi dəyərləri ilə. Amma biz əvəzinə sscanf ümid edirik yalnız istifadəçi deməkdir ki, 1 qaytarır bir int təmin. Nə edəcəyik əgər sscanf həqiqətən 1 qaytarır? Yaxşı, biz dərhal xətt azad ki, istifadəçi sonra tipli və biz dərhal olan, n qayıtmaq bir int kazanılmış. Başqa, sscanf 1 qayıtmaq, vermir və əgər istifadəçi buna görə də əməkdaşlıq etmədi, biz hələ xətt azad, lakin biz indi yeniden istifadəçi təklif. Və biz daxilində hələ istəyirik, çünki başqa sonsuz loop, proses yenidən başlamaq, və bəlkə yenidən, və bəlkə yenə qədər istifadəçi həqiqətən Bizə bir int edir.