SPEAKER 1: Ejja tagħti ħarsa fil-librerija CS50, speċifikament funzjoni GetInt tagħha. Hawnhekk għandna l-għajn prinċipali kodiċi għall GetInt. U tinnota li mhuwiex twil wisq, u aktar ta 'dan jikkostitwixxi loop filwaqt li - loop infinita f'dak - li biss prospetti valur ladarba aħna ħadthom attwalment gotten dak li aħna mistennija. Ejja jimxu permezz tiegħu. Avviż up here ewwel, il- filwaqt li loop jibda. Avviż li jmiss li għandna linja tal-kodiċi li attwalment jitlob GetString, u taħżen l-valur tar-ritorn fil- varjabbli, imsejħa linja, ta 'spag tip. Aħna mbagħad jagħmlu daqsxejn ta 'verifika sanità. Jekk null linja ==, allura aħna curiously ritorn INT_MAX. Issa jirriżulta li INT_MAX hija kostanti speċjali ddikjarati mkien ieħor li jispeċifika l-akbar possibbli int li inti tista 'tirrappreżenta b'mod programm bħal dan. Issa konna arbitrarjament iddeċidiet li jirritornaw INT_MAX bħala valur sentinella tal xorta, waħda li konna riżervati bħala li jfisser żball kien seħħ. Allura l-prezz li nħallsu, naturalment, huwa li GetInt apparentement ma tistax attwalment ritorn numru kbir daqs INT_MAX, minħabba li, anki jekk trid, li l-valur tar-ritorn għandhom verament jiġi interpretat mill-sejjieħ - min bl-użu GetInt - bħala żball ta 'xi tip. Sussegwentement, avviż li stajt iddikjarat ta 'n int u char c. F'dan il-linja li jmiss ta 'kodiċi, I call a funzjoni msejħa sscanf, li jgħaddi fil- erba 'argumenti. linja, li hija l-sekwenza tal-utent ittajpjat fil, "% i% c", li huwa format string li jien jistennew l-jista utent tip, segwit mill-indirizz ta ' n, u l-indirizz ta 'c. Issa sscanf tal skop fil-ħajja huwa tabilħaqq jiġu skennjati string tfittex għall- format partikolari li l-programmer tkun speċifikata bħala li t-tieni argument. F'dan il-każ,% i huwa hemm, kif inhu% c. Mela jekk sscanf jiltaqa 'ma int fil- input utent, li int ser tkun maħżuna ġewwa tal-varjabbli imsejħa n, għaliex għandna sakemm bħala t-tielet argument li sscanf-indirizz ta 'n. Li jfisser li sscanf tista 'tabilħaqq jmorru hemm, u taġġorna l-valur fih. Issa, fil-każ it-tipi utent fil xi ħaġa aktar minn ċifri wieħed jew aktar - fi kliem ieħor, char ta 'xi tip - dan it-tieni c varjabbli, li l-indirizz aħna mgħoddi fis sscanf bħala r-raba tagħha argument se jkun popolati wkoll. Issa l-rasu ta 'verifika għal karattru addizzjonali mill-utent huwa li jekk hu jew hi ma tikkoperax, u tipi fil aktar minn sempliċi int, aħna ser ikunu jistgħu jiskopriha f'dan mod, għaliex f'dak il-każ, sscanf se jirritorna 2, li jfisser li iż-żewġ placeholders kienu mimlija mal-valuri. Iżda aħna qed jittamaw li sscanf minflok prospetti 1, li tfisser l-utent biss pprovdiet int. Dak li nagħmlu jekk sscanf tabilħaqq prospetti 1? Well, aħna immedjatament ħielsa l-linja li l-utent ttajpjata, u allura aħna immedjatament jirritorna n, li gotten int. Else, jekk sscanf ma ritorn 1, u l-utent għalhekk ma kkooperax, aħna xorta ħielsa l-linja, iżda aħna issa fil-pront lill-utent biex retry. U għaliex aħna qed għadhom ġewwa ta 'dan loop inkella infinita, il-proċess se jerġa 'jibda, u forsi mill-ġdid, u forsi mill-ġdid, sakemm l-utent fil-fatt jipprovdi us int.