>> 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.