2 00:00:00,000 --> 00:00:01,860 >> Oratè 1: Se pou nou pran yon gade nan bibliyotèk la CS50, 3 00:00:01,860 --> 00:00:05,190 espesyalman fonksyon GetInt li yo. 4 00:00:05,190 --> 00:00:07,820 Isit la nou gen sous aktyèl la Kòd pou GetInt. 5 00:00:07,820 --> 00:00:12,050 Apre sa, remake ke li pa twò long, ak pi fò nan li konstitye yon bouk pandan y ap - 6 00:00:12,050 --> 00:00:15,620 yon bouk enfini nan moman sa - ke se sèlman retounen yon valè yon fwa nou te aktyèlman 7 00:00:15,620 --> 00:00:17,400 Avèk konkou sa nou espere. 8 00:00:17,400 --> 00:00:18,700 Se pou nou mache atravè li. 9 00:00:18,700 --> 00:00:21,650 >> Avi Moute bò isit an premye, an pandan y ap bouk la kòmanse. 10 00:00:21,650 --> 00:00:25,390 Avi pwochen ke nou gen yon liy nan Kòd ki aktyèlman rele GetString, 11 00:00:25,390 --> 00:00:29,620 ak magazen valè a retounen nan yon varyab, rele liy, nan kalite fisèl. 12 00:00:29,620 --> 00:00:31,210 Nou Lè sa a, fè yon ti jan nan yon chèk saniti. 13 00:00:31,210 --> 00:00:35,770 Si liy == nil, lè sa a nou kiryozite retounen INT_MAX. 14 00:00:35,770 --> 00:00:40,140 >> Koulye a, li sanble ke INT_MAX se yon konstan espesyal te deklare yon lòt kote 15 00:00:40,140 --> 00:00:44,030 ki espesifye pi gwo posib la int ke ou ka reprezante nan yon 16 00:00:44,030 --> 00:00:45,160 pwogram tankou sa a. 17 00:00:45,160 --> 00:00:49,430 Koulye a, nou te abitrèman deside retounen INT_MAX kòm yon valè Sentinel nan 18 00:00:49,430 --> 00:00:53,120 kalite, youn ki nou te rezève kòm sa vle di yon erè te fèt. 19 00:00:53,120 --> 00:00:56,230 Se konsa, pri a nou peye, nan kou, se ki GetInt kapab aparamman pa 20 00:00:56,230 --> 00:01:01,440 aktyèlman retounen yon nimewo ki gwo tankou INT_MAX, paske menm si li vle, 21 00:01:01,440 --> 00:01:04,730 ke valè retounen ta dwe reyèlman kapab entèprete pa moun kap rele a - 22 00:01:04,730 --> 00:01:06,260 Nenpòt moun ki nan lè l sèvi avèk GetInt - 23 00:01:06,260 --> 00:01:09,340 kòm yon erè nan kèk sòt. 24 00:01:09,340 --> 00:01:13,840 >> Apre sa, remake ke mwen te deklare yon n Int ak yon Char c. 25 00:01:13,840 --> 00:01:18,030 Nan sa a liy pwochen nan Kòd, mwen rele yon fonksyon rele sskanf, pase nan 26 00:01:18,030 --> 00:01:18,970 kat agiman. 27 00:01:18,970 --> 00:01:25,110 liy, ki se fisèl la itilizatè a tape nan, "% mwen% c", ki se yon fòma 28 00:01:25,110 --> 00:01:28,850 fisèl ke mwen ap tann ka a itilizatè kalite, ki te swiv pa adrès ki nan 29 00:01:28,850 --> 00:01:30,920 n, ak adrès la nan c. 30 00:01:30,920 --> 00:01:34,860 Objektif Koulye a, sskanf nan lavi se vre optik yon fil kap chèche a 31 00:01:34,860 --> 00:01:38,700 fòma patikilye ki pwogramè a te espesifye kòm ki dezyèm agiman. 32 00:01:38,700 --> 00:01:42,020 Nan ka sa a,% mwen se nan la, tankou se pousantaj% c. 33 00:01:42,020 --> 00:01:46,700 Se konsa, si sskanf rankont yon Int nan la D 'itilizatè a, sa a ap Int dwe estoke 34 00:01:46,700 --> 00:01:50,270 andedan nan varyab la rele n, paske nou te founi kòm twazyèm lan 35 00:01:50,270 --> 00:01:52,810 agiman sskanf adrès ki nan n. 36 00:01:52,810 --> 00:01:56,870 Ki vle di ke sskanf ka tout bon ale la, epi mete ajou valè a ladan l '. 37 00:01:56,870 --> 00:01:59,990 >> Koulye a, nan ka ki kalite itilizatè nan yon bagay ki pi 38 00:01:59,990 --> 00:02:01,220 pase youn oswa plis chif - 39 00:02:01,220 --> 00:02:03,570 nan lòt mo, yon karaktè nan kèk sòt - 40 00:02:03,570 --> 00:02:07,940 ki dezyèm c varyab, ki gen adrès nou te pase nan sskanf kòm katriyèm li yo 41 00:02:07,940 --> 00:02:10,560 ap agiman tou gen pou peple. 42 00:02:10,560 --> 00:02:14,220 Koulye a, tèt la nan tcheke pou yon plis karaktè soti nan itilizatè a se 43 00:02:14,220 --> 00:02:17,360 ke si li pa kowopere, ak kalite nan plis pase jis yon Int, 44 00:02:17,360 --> 00:02:20,530 nou pral kapab detekte li nan sa a fason, paske se nan ka sa a, sskanf 45 00:02:20,530 --> 00:02:24,860 ki pral retounen 2, siyifye ke tou de placeholders yo te plen 46 00:02:24,860 --> 00:02:25,600 ak valè. 47 00:02:25,600 --> 00:02:30,360 Men, nou ap espere ke sskanf olye pou retounen 1, ki vle di itilizatè a sèlman 48 00:02:30,360 --> 00:02:31,630 bay yon Int. 49 00:02:31,630 --> 00:02:34,480 >> Ki sa nou fè si sskanf tout bon retounen 1? 50 00:02:34,480 --> 00:02:39,150 Oke, nou imedyatman gratis liy ki itilizatè a tape nan, ak Lè sa a, nou 51 00:02:39,150 --> 00:02:42,670 imedyatman retounen n, li te gen vinn yon Int. 52 00:02:42,670 --> 00:02:47,180 Lòt Bagay, si sskanf pa retounen 1, ak itilizatè a Se poutèt sa, pa t 'kolabore, 53 00:02:47,180 --> 00:02:51,470 nou toujou gratis nan liy lan, men nou kounye a pouse itilizatè a rekoumanse. 54 00:02:51,470 --> 00:02:55,390 Apre sa, paske nou ap toujou andedan nan ki otreman enfini bouk, pwosesis la 55 00:02:55,390 --> 00:03:00,190 yo ap kòmanse ankò, e petèt ankò, li petèt ankò, jouk itilizatè a aktyèlman 56 00:03:00,190 --> 00:03:01,500 bay nou yon Int. 57 00:03:01,500 --> 00:03:21,490