1 00:00:00,000 --> 00:00:00,180 2 00:00:00,180 --> 00:00:02,920 >> SPEAKER 1: Ejja jikteb programm li gets string mill-utent mingħajr 3 00:00:02,920 --> 00:00:05,700 jużaw il-Librerija CS50 jiffunzjonaw GetString. 4 00:00:05,700 --> 00:00:08,720 Biex tagħmel dan, aħna ser imorru quddiem u l-użu scanf, il-funzjoni li l-GetString 5 00:00:08,720 --> 00:00:10,950 funzjoni effettivament juża taħt il-barnuża. 6 00:00:10,950 --> 00:00:13,780 Imma jien ser jagħmlu dan deliberatament b'mod Buggy. 7 00:00:13,780 --> 00:00:17,230 Jien ser tagħmel b'mod li naħseb ikun ġust, iżda jirriżulta li 8 00:00:17,230 --> 00:00:19,380 suppożizzjoni tiegħi għaddej biex pjuttost, pjuttost difettuż. 9 00:00:19,380 --> 00:00:20,800 U fil-fatt, pjuttost perikolużi. 10 00:00:20,800 --> 00:00:24,750 Minħabba bugs bħal dak li jien ser jagħmlu jistgħu jiġu sfruttati minn avversarji 11 00:00:24,750 --> 00:00:28,870 tali li l-apparat tiegħek jew program tiegħek jista 'jittieħed potenzjalment. 12 00:00:28,870 --> 00:00:30,200 >> Ejja tibda kif ġej. 13 00:00:30,200 --> 00:00:33,540 Ewwel ejja tiddikjara string tagħna, inkella magħruf issa bħala stilla char, 14 00:00:33,540 --> 00:00:34,750 u sejħa hija s. 15 00:00:34,750 --> 00:00:39,400 Tikri l-utent għal string li jmiss fil-pront, kif ma "string jekk jogħġbok." U 16 00:00:39,400 --> 00:00:44,250 ejja issa jiksbu l-sekwenza mill-utent jużaw scanf, kwotazzjoni unquote, "% s." Fil 17 00:00:44,250 --> 00:00:47,760 kliem ieħor, ejja tinforma scanf li aħna do fil-fatt tistenna li tikseb string 18 00:00:47,760 --> 00:00:48,630 mill-utent. 19 00:00:48,630 --> 00:00:50,810 >> Imma issa għandna bżonn li tgħid scanf Ħaġa waħda oħra - 20 00:00:50,810 --> 00:00:53,350 fejn tpoġġi l-sekwenza li l-utent jipprovdi. 21 00:00:53,350 --> 00:00:57,840 Well, jien ser sempliċiment tibda ma 'comma s, li tispeċifika li nixtieq 22 00:00:57,840 --> 00:00:59,320 scanf li jpoġġi l-string hemmhekk. 23 00:00:59,320 --> 00:01:04,818 Jien jmiss ser jistampa xi ħaġa bħal printf "grazzi għall-% s 24 00:01:04,818 --> 00:01:10,670 comma backslash n. "U kif dejjem, jien ser jgħaddu fil-sekwenza, s. 25 00:01:10,670 --> 00:01:14,920 Issa ejja jiffrankaw, tiġbor, u run dan programm, u ara jekk aħna ma jistgħu jinduċu 26 00:01:14,920 --> 00:01:16,590 l-problema I mbassra. 27 00:01:16,590 --> 00:01:18,650 >> Agħmel scanf-1. 28 00:01:18,650 --> 00:01:20,960 ./scanf-1. 29 00:01:20,960 --> 00:01:21,830 String jekk jogħġbok. 30 00:01:21,830 --> 00:01:25,540 Ejja jipprovdi xi ħaġa simili, "bonjour." "Grazzi għall-null." Hmm, li mhux 31 00:01:25,540 --> 00:01:26,750 dak Jien kont qed nistenna. 32 00:01:26,750 --> 00:01:28,240 Allura x'inhu għaddej hawn? 33 00:01:28,240 --> 00:01:32,040 >> Ukoll, jirriżulta għaliex aħna dikjarat i bħala stilla char iżda aħna ma 34 00:01:32,040 --> 00:01:36,120 attwalment maħżuna s-indirizz ta ' blokki attwali tal-memorja, scanf ma 35 00:01:36,120 --> 00:01:38,940 ikollhom kullimkien biex tpoġġi l-sekwenza li l-utent ittajpjat pulzieri 36 00:01:38,940 --> 00:01:42,510 Tabilħaqq, jekk l-utent kellhom issa tip fil string ħafna itwal minn "hello," 37 00:01:42,510 --> 00:01:46,780 per eżempju diversi linji ta 'test jew diversi paragrafi ta 'test, huwa pjuttost 38 00:01:46,780 --> 00:01:50,280 possibbli li nistgħu jinduċu hekk imsejħa tort segmentazzjoni. 39 00:01:50,280 --> 00:01:53,570 >> Minħabba scanf mhix se tkun taf li I ma attwalment tqiegħed l-indirizz 40 00:01:53,570 --> 00:01:54,610 ġewwa ta 's. 41 00:01:54,610 --> 00:01:58,000 Pjuttost, huwa se tara xi valur fil-i, xi mudell ta 'bits li jista' 42 00:01:58,000 --> 00:02:00,910 jkun tajjeb ħafna valur żibel, hemm biss b'kumbinazzjoni. 43 00:02:00,910 --> 00:02:04,600 U scanf għadu għaddej biex tipprova tikteb l-sekwenza utent f'dak l-indirizz, 44 00:02:04,600 --> 00:02:08,789 anki jekk huwa valur żibel, li tabilħaqq jista 'jinduċi crash. 45 00:02:08,789 --> 00:02:10,130 >> Allura kif huma aħna se jiffissaw dan? 46 00:02:10,130 --> 00:02:12,523