1 00:00:00,000 --> 00:00:09,780 >> [เล่นดนตรี] 2 00:00:09,780 --> 00:00:11,150 >> ZAMYLA จัน: ให้ต่อสู้กู้คืน 3 00:00:11,150 --> 00:00:14,030 กู้คืนอาจเป็น pset ที่ชื่นชอบ และส่วนใหญ่เป็นเพราะผมคิดว่ามันเป็น 4 00:00:14,030 --> 00:00:15,650 จริงๆเย็นจริงๆ 5 00:00:15,650 --> 00:00:19,040 โดยทั่วไปคุณได้รับหน่วยความจำ แฟ้มบัตรที่ 6 00:00:19,040 --> 00:00:20,900 ภาพที่ได้ถูกลบไปแล้ว 7 00:00:20,900 --> 00:00:23,650 แต่สิ่งที่คุณกำลังจะ ทำคือการกู้คืนได้ทั้งหมด 8 00:00:23,650 --> 00:00:24,250 >> ตกลง 9 00:00:24,250 --> 00:00:28,230 ดังนั้นจึงเป็นเรื่องที่น่าตื่นเต้นจริงๆ แต่อาจจะเป็น น้อยข่มขู่เพราะคุณ 10 00:00:28,230 --> 00:00:32,430 ได้รับไฟล์ C ที่ว่างเปล่าและ คุณต้องกรอกข้อมูลเข้ามา 11 00:00:32,430 --> 00:00:36,250 ตกลงจึงขอแบ่งนี้ เป็นส่วนที่สามารถจัดการได้ 12 00:00:36,250 --> 00:00:38,160 คุณจะต้องการที่จะเปิด ไฟล์การ์ดหน่วยความจำ 13 00:00:38,160 --> 00:00:39,900 ที่ดูเหมือนว่าง่ายพอ 14 00:00:39,900 --> 00:00:43,030 แล้วหาจุดเริ่มต้น ของภาพ JPG 15 00:00:43,030 --> 00:00:46,740 ไฟล์ทั้งหมดที่อยู่ในหน่วยความจำนี้ การ์ดจะเป็น JPGs 16 00:00:46,740 --> 00:00:50,840 จากนั้นเมื่อคุณพบจุดเริ่มต้น คุณกำลังจะเปิดใหม่ JPG ที่ 17 00:00:50,840 --> 00:00:57,610 เป็นเหมือนการสร้าง JPG, และเขียน 512 ไบต์ในเวลาจนกว่า JPG ใหม่ 18 00:00:57,610 --> 00:01:02,930 พบและสิ้นสุดโครงการเมื่อ คุณสามารถตรวจจับจุดสิ้นสุดของแฟ้ม 19 00:01:02,930 --> 00:01:06,400 >> ดังนั้นขั้นตอนแรกก่อนที่จะเปิด ไฟล์การ์ดหน่วยความจำ 20 00:01:06,400 --> 00:01:09,850 แต่คุณรู้อย่างนี้แล้วและมี ไฟล์ I / O ฟังก์ชั่นที่จะ 21 00:01:09,850 --> 00:01:12,030 พิสูจน์ว่ามีประโยชน์มาก 22 00:01:12,030 --> 00:01:12,820 ตกลง 23 00:01:12,820 --> 00:01:14,760 ดังนั้นสิ่งที่ JPGs มีอะไรบ้าง 24 00:01:14,760 --> 00:01:16,330 เพราะเราจะต้องเริ่มต้น 25 00:01:16,330 --> 00:01:21,310 ดี JPGs เช่นเดียวกับแผนที่บิต เป็นเพียงลำดับของไบต์ 26 00:01:21,310 --> 00:01:30,660 โชคดีที่ทุก JPG เริ่มต้นด้วยอย่างใดอย่างหนึ่ง 0xff, 0xd8, 0xff, 0xe0 หนึ่งลำดับ 27 00:01:30,660 --> 00:01:33,610 ไบต์หรืออื่น ลำดับของไบต์ 28 00:01:33,610 --> 00:01:37,250 >> ดังนั้นผู้สี่ไบต์ระบุ จุดเริ่มต้นของ JPG 29 00:01:37,250 --> 00:01:40,780 ใครอื่นนอกจากผู้ที่สองชุด สี่ไบต์ 30 00:01:40,780 --> 00:01:44,840 และโชคดีสำหรับเราความเป็นจริงอื่นที่เรา สามารถใช้ประโยชน์จากที่ทุก 31 00:01:44,840 --> 00:01:48,550 JPG จะถูกเก็บไว้ด้านข้าง บนการ์ดหน่วยความจำ 32 00:01:48,550 --> 00:01:52,210 ผมได้เป็นตัวแทนของโครงสร้างของ การ์ดหน่วยความจำแผนผังเกี่ยวกับเรื่องนี้ 33 00:01:52,210 --> 00:01:53,310 เลื่อนที่นี่ 34 00:01:53,310 --> 00:01:59,270 ที่นี่ทุกตารางทุกสี่เหลี่ยมผืนผ้า แสดงให้เห็นถึง 512 ไบต์และจะเริ่ม 35 00:01:59,270 --> 00:02:01,750 ด้วยสีเทาในการที่เราทำไม่ได้ จริงๆมี JPG 36 00:02:01,750 --> 00:02:05,700 >> แต่แล้วในที่สุดเราก็ตี บล็อกที่มีดาว 37 00:02:05,700 --> 00:02:10,940 นั่นหมายความว่าสี่ไบต์แรกออก 512 ของผู้ที่เป็นส่วนหนึ่งของทั้งสอง 38 00:02:10,940 --> 00:02:13,230 ลำดับเริ่มต้นของ JPG 39 00:02:13,230 --> 00:02:17,340 และเราไปจากที่นั่นและจากนั้นอีก JPG หนึ่งสิ้นสุดลงอย่างใดอย่างหนึ่งต่อไปจะเริ่มขึ้น 40 00:02:17,340 --> 00:02:20,990 เราไม่เคยมีมากขึ้น พื้นที่สีเทาในระหว่าง 41 00:02:20,990 --> 00:02:25,550 >> แต่อย่างไรเราจริงอ่านนี้และ อ่าน 512 ไบต์เพื่อที่เราจะสามารถทำให้ 42 00:02:25,550 --> 00:02:27,500 การเปรียบเทียบครั้งแรกได้อย่างไร 43 00:02:27,500 --> 00:02:33,470 ดีขอกลับไป fread ไปซึ่ง จะใช้เวลาในโครงสร้างที่จะมี 44 00:02:33,470 --> 00:02:34,470 ไบต์ที่คุณกำลังอ่าน 45 00:02:34,470 --> 00:02:36,570 ดังนั้นคุณจะใส่ ผู้ที่อยู่ในที่นั่น - 46 00:02:36,570 --> 00:02:42,192 ขนาดจำนวนแล้ว inpointer ที่คุณกำลังอ่านจาก 47 00:02:42,192 --> 00:02:49,900 ตอนนี้เราต้องการที่จะอ่าน 512 ครั้งและ เราต้องการที่จะเก็บนี้ในกันชน 48 00:02:49,900 --> 00:02:50,700 ฉันจะเรียกมันว่า 49 00:02:50,700 --> 00:02:54,100 >> โดยทั่วไปเราจะถือ ไปยังผู้ที่ 512 ไบต์และทำ 50 00:02:54,100 --> 00:02:55,500 สิ่งที่มีมันใช่มั้ย 51 00:02:55,500 --> 00:02:58,260 อย่างใดอย่างหนึ่งที่เรากำลังจะไปเปรียบเทียบแรก สี่ไบต์หรือเรากำลังจะ 52 00:02:58,260 --> 00:02:59,830 อ่านมันใน OK? 53 00:02:59,830 --> 00:03:05,050 ดังนั้นแล้วตัวชี้ข้อมูลจะแล้ว ทำหน้าที่เป็นกันชนของคุณและ 54 00:03:05,050 --> 00:03:07,745 inpointer ดีที่เพิ่งจะ เป็นการ์ดหน่วยความจำของคุณ 55 00:03:07,745 --> 00:03:09,500 >> กลับไปที่แผนผังการ์ดหน่วยความจำของเรา 56 00:03:09,500 --> 00:03:14,690 เรากำลังจะไปอ่าน 512 ไบต์ในแต่ละครั้ง การจัดเก็บทุกบล็อก 512 ไบต์ 57 00:03:14,690 --> 00:03:19,190 เป็นกันชนถือไปยังผู้ที่ buffer ผู้ 512 ไบต์จนกว่าเราจะรู้ว่า 58 00:03:19,190 --> 00:03:22,000 ว่าสิ่งที่จะทำพวกเขา 59 00:03:22,000 --> 00:03:25,960 ดังนั้นจุดเริ่มต้นไม่ได้เป็นอะไรมาก เราจะอ่านบัฟเฟอร์เปรียบเทียบและ 60 00:03:25,960 --> 00:03:28,160 เราจะไม่จำเป็นต้องทำอะไรกับมัน 61 00:03:28,160 --> 00:03:32,030 และแล้วในที่สุดเราก็ตีดาว ป้องกันซึ่งหมายความว่าเราได้ 62 00:03:32,030 --> 00:03:33,630 JPG พบครั้งแรกของเรา 63 00:03:33,630 --> 00:03:36,560 ดังนั้นบัฟเฟอร์ตอนนี้ถือ ไบต์จาก JPG ที่ 64 00:03:36,560 --> 00:03:40,220 >> ครั้งต่อไปที่ 512 ไบต์เพราะพวกเขากำลัง ไม่ได้บล็อกดาวนอกจากนี้ยังมี 65 00:03:40,220 --> 00:03:41,740 ส่วนหนึ่งของ JPG ที่ 66 00:03:41,740 --> 00:03:47,630 และ JPGs มีอย่างต่อเนื่องมาจากที่นั่น ในจนกว่าเราจะตี JPG ต่อไป 67 00:03:47,630 --> 00:03:51,880 แล้วกันชนแล้วถือ 512 ไบต์สำหรับ JPG นั้นและ 68 00:03:51,880 --> 00:03:53,580 อื่น ๆ และอื่น ๆ 69 00:03:53,580 --> 00:03:54,250 ตกลง 70 00:03:54,250 --> 00:03:58,980 >> ดังนั้นเมื่อคุณกดครั้งแรกที่ติดดาว บล็อกแรก JPG อย่างไรคุณ 71 00:03:58,980 --> 00:04:01,910 จริง, ดี, เปิดมันได้หรือไม่ 72 00:04:01,910 --> 00:04:04,990 ขอให้ JPG ใหม่ 73 00:04:04,990 --> 00:04:08,846 ชื่อไฟล์เพื่อ JPG จะไป อยู่ในรูปแบบจำนวนหมายเลข 74 00:04:08,846 --> 00:04:13,830 number.jpg ในสิ่งที่พวกเขากำลังมีชื่ออยู่ใน เพื่อที่พวกเขาจะพบ 75 00:04:13,830 --> 00:04:14,780 เริ่มต้นที่ 0 76 00:04:14,780 --> 00:04:19,890 >> ดังนั้น JPG แรกที่คุณ หาจะ 000.jpg 77 00:04:19,890 --> 00:04:26,560 ดังนั้นอาจเป็นความคิดที่ดีที่จะติดตาม กี่ JPGs คุณได้พบจนถึง 78 00:04:26,560 --> 00:04:27,610 เพื่อให้เป็นชื่อไฟล์ 79 00:04:27,610 --> 00:04:29,660 แต่อย่างไรคุณจริงให้ที่ 80 00:04:29,660 --> 00:04:34,310 ดีเรากำลังจะใช้ ฟังก์ชั่นที่เรียกว่า sprintf 81 00:04:34,310 --> 00:04:38,260 นิด ๆ หน่อย ๆ คล้ายกับ printf ที่ คุณสามารถใช้ตัวยึดสำหรับสตริง, 82 00:04:38,260 --> 00:04:42,420 ยกเว้นในกรณีนี้ sprintf จะพิมพ์ ไฟล์ออกไปในปัจจุบัน 83 00:04:42,420 --> 00:04:45,550 ไดเรกทอรีไม่เข้ากับขั้ว 84 00:04:45,550 --> 00:04:46,120 >> ตกลง 85 00:04:46,120 --> 00:04:49,950 ดังนั้นที่นี่เราจะเห็นว่าเรามีชื่อ แถวถ่านที่จะเก็บ 86 00:04:49,950 --> 00:04:55,120 สตริงผลลัพธ์และเราผ่านใน ชื่อของสตริงที่เกิดขึ้นจริงด้วย 87 00:04:55,120 --> 00:04:58,720 ตัวยึดเช่นเดียวกับที่เราได้ เรียนรู้ที่จะทำอย่างไรกับ printf 88 00:04:58,720 --> 00:05:05,530 แต่รหัสนี้ที่ฉันได้ที่นี่ จะให้ 2.jpg ไม่ 002.jpg 89 00:05:05,530 --> 00:05:09,920 ดังนั้นฉันจะปล่อยให้อยู่กับคุณเพื่อหาวิธีที่จะ แก้ไขตัวยึดที่จะทำให้ 90 00:05:09,920 --> 00:05:11,920 ชื่อที่ถูกต้อง 91 00:05:11,920 --> 00:05:12,610 >> ตกลง 92 00:05:12,610 --> 00:05:17,390 ดังนั้นเมื่อคุณได้ sprintf'd แล้วคุณสามารถ เปิดแฟ้มที่เพราะมันมีอยู่ใน 93 00:05:17,390 --> 00:05:22,690 ไดเรกทอรีของคุณด้วย fopen ใช้ ชื่อแล้วโหมดสิ่งที่คุณต้องการ 94 00:05:22,690 --> 00:05:25,140 จะเปิดแฟ้มที่ค่ะ 95 00:05:25,140 --> 00:05:30,260 ดังนั้นขณะนี้ที่เราได้เปิดไฟล์ JPG ใหม่ ตอนนี้เราสามารถเขียน 512 ไบต์ที่ 96 00:05:30,260 --> 00:05:33,320 เวลาจน JPG ใหม่พบ 97 00:05:33,320 --> 00:05:36,640 ดังนั้นลองมาดูอีก ไวยากรณ์ของ fwrite 98 00:05:36,640 --> 00:05:40,060 >> ฉันรู้ว่าฉันกำลังแสดงสไลด์นี้ จำนวนมาก แต่ฉันเพียงแค่ต้องการที่จะให้แน่ใจว่า 99 00:05:40,060 --> 00:05:43,530 พวกคุณไม่ได้รับสับสนเกินไปเพราะ ฉันรู้ว่ามันเป็นเรื่องง่ายมากที่จะ 100 00:05:43,530 --> 00:05:47,000 ผสมขึ้นเป็นครั้งแรกและครั้งสุดท้าย การโต้แย้งโดยเฉพาะอย่างยิ่ง 101 00:05:47,000 --> 00:05:54,390 แต่จำไว้ว่าคุณกำลังเขียนจาก บัฟเฟอร์ของคุณลงในไฟล์ภาพออก 102 00:05:54,390 --> 00:05:59,250 >> ตอนที่คุณรู้วิธีการเขียน 512 ไบต์เป็นไฟล์ JPG ของคุณที่คุณได้ 103 00:05:59,250 --> 00:06:03,230 สร้างดีที่เราต้องการที่จะหยุดที่ กระบวนการเมื่อเราได้มาถึงจุดสิ้นสุดของ 104 00:06:03,230 --> 00:06:06,720 บัตรของเราเพราะจะไม่มี ภาพใด ๆ ที่จะพบ 105 00:06:06,720 --> 00:06:10,760 จึงขอกลับไป fread อีกครั้งฉันสัญญา 106 00:06:10,760 --> 00:06:15,600 fread กลับรายการว่าหลายขนาด ขนาดก็พร้อมที่ประสบความสำเร็จใน 107 00:06:15,600 --> 00:06:19,440 จะเป็นการดีที่นี้เป็นไปได้สิ่งที่ คุณผ่านในจำนวนที่เหมาะสม 108 00:06:19,440 --> 00:06:24,140 เพราะคุณกำลังพยายามที่จะอ่านจำนวน ขององค์ประกอบที่มีขนาดขนาด 109 00:06:24,140 --> 00:06:29,380 แต่ถ้า fread ไม่สามารถที่จะอ่านว่า จำนวนขององค์ประกอบแล้วก็จะกลับ 110 00:06:29,380 --> 00:06:32,530 สิ่งที่จำนวนมันอ่านที่ประสบความสำเร็จ 111 00:06:32,530 --> 00:06:36,310 >> ตอนนี้สิ่งหนึ่งที่สำคัญที่จะต้องทราบคือ ว่าถ้าคุณใช้ไฟล์อื่น I / O 112 00:06:36,310 --> 00:06:43,860 เช่นฟังก์ชั่น fgetc มันก็จะกลับ จำนวนรายการมันอ่านที่ประสบความสำเร็จ 113 00:06:43,860 --> 00:06:48,000 สิ่งที่เป็นประโยชน์เกี่ยวกับฟังก์ชั่นนี้เป็น ว่าถ้าคุณใช้ฟังก์ชั่นภายในของ 114 00:06:48,000 --> 00:06:53,190 เงื่อนไขก็จะดำเนินการในขณะที่ตัวเอง การกำหนดเงื่อนไขที่ซึ่งเป็น 115 00:06:53,190 --> 00:06:54,340 เพียงแค่มีประโยชน์จริงๆ 116 00:06:54,340 --> 00:07:00,440 ดังนั้นถ้าคุณมีเงื่อนไขนี้พูด ถ้าบัฟเฟอร์ fread, DOG sizeof, 2, 117 00:07:00,440 --> 00:07:04,870 ตัวชี้เท่ากับเท่ากับ 1, ว่า หมายความว่าฉันต้องการที่จะอ่าน 118 00:07:04,870 --> 00:07:06,540 2 สุนัขในเวลา 119 00:07:06,540 --> 00:07:13,490 แต่ถ้า fread กลับ 1 แทน 2 เป็น คาดว่าหมายความว่ามี 2 120 00:07:13,490 --> 00:07:16,480 สุนัขที่เหลืออยู่ในแฟ้มของฉัน แต่ 1 121 00:07:16,480 --> 00:07:22,450 แต่ถ้ามันกลับ 2 แล้วผมยังมี ที่ 2 สุนัขภายในของบัฟเฟอร์ของฉัน 122 00:07:22,450 --> 00:07:26,280 >> ดังนั้นขณะนี้ที่จะช่วยให้คุณรู้สึกของวิธีการ ตรวจสอบการสิ้นสุดของแฟ้ม แต่ 123 00:07:26,280 --> 00:07:28,940 ให้เป็นไปในขณะนี้ผ่านตรรกะ 124 00:07:28,940 --> 00:07:32,460 ทำอย่างไรเราจริงทุกชิ้น ขององค์ประกอบเหล่านี้ร่วมกัน 125 00:07:32,460 --> 00:07:36,880 เมื่อเราตี JPG ครั้งแรกของเราตั้งแต่ เรารู้ว่า JPGs จะถูกเก็บไว้ 126 00:07:36,880 --> 00:07:40,910 ติดกันเราจะเขียนจน เราถึงจุดสิ้นสุดของแฟ้มบัตร 127 00:07:40,910 --> 00:07:43,950 แต่เราไม่ได้ต้องการที่จะเขียน อะไรจนแล้ว 128 00:07:43,950 --> 00:07:48,710 ดังนั้นจึงเป็นเรื่องไม่เพียง แต่ที่เราอยู่ที่ จุดเริ่มต้นของ JPG ใหม่ แต่ไม่ว่าจะเป็น 129 00:07:48,710 --> 00:07:50,655 ที่เราได้พบแล้ว JPG หรือไม่ 130 00:07:50,655 --> 00:07:55,390 >> ถ้ามันเป็นจุดเริ่มต้นของ JPG ใหม่ที่เราจะ ต้องการที่จะปิดแฟ้ม JPG ปัจจุบันของเราถ้า 131 00:07:55,390 --> 00:07:59,110 เรามีหนึ่งเปิดและเปิด ใหม่ที่จะเขียนลงไปใน 132 00:07:59,110 --> 00:08:03,340 ถ้ามันไม่ได้เป็นจุดเริ่มต้นของ JPG ใหม่ แม้ว่าเราจะเก็บไฟล์ JPG เดียวกัน 133 00:08:03,340 --> 00:08:05,910 เปิดและเขียนลงในที่ 134 00:08:05,910 --> 00:08:10,100 เราจะเขียนบัฟเฟอร์ของเราเป็นอย่างใดอย่างหนึ่ง ไฟล์ JPG เรามีการเปิดให้ 135 00:08:10,100 --> 00:08:12,120 เรามีหนึ่งเปิดแน่นอน 136 00:08:12,120 --> 00:08:16,190 ถ้าเรายังไม่ได้พบ JPG ครั้งแรกของเรา แต่เราไม่ได้เขียนอะไร 137 00:08:16,190 --> 00:08:20,290 และกระบวนการนี​​้ยังคงดำเนินต่อไปจนกว่าคุณจะ ถึงจุดสิ้นสุดของแฟ้มบัตร 138 00:08:20,290 --> 00:08:23,410 >> และในที่สุดคุณจะต้องการให้ แน่ใจว่าคุณ fclose ใด ๆ 139 00:08:23,410 --> 00:08:25,800 ไฟล์ที่คุณได้ fopened 140 00:08:25,800 --> 00:08:28,360 เมื่อคุณพอใจกับ แนวความคิดที่จะดูที่บางส่วน 141 00:08:28,360 --> 00:08:30,840 pseudocode ซึ่งฉันได้รวมอยู่ที่นี่ 142 00:08:30,840 --> 00:08:34,830 ขั้นแรกคุณต้องการเปิดแฟ้มบัตร แล้วทำซ้ำขั้นตอนต่อไปนี้ 143 00:08:34,830 --> 00:08:37,144 จนกว่าคุณจะได้ถึง ในตอนท้ายของบัตร 144 00:08:37,144 --> 00:08:40,880 คุณต้องการอ่าน 512 ไบต์ เป็นกันชน 145 00:08:40,880 --> 00:08:43,934 การใช้บัฟเฟอร์ที่คุณจะต้องการที่จะตรวจสอบ ไม่ว่าคุณจะอยู่ที่จุดเริ่มต้นของ 146 00:08:43,934 --> 00:08:45,300 JPG ใหม่หรือไม่ 147 00:08:45,300 --> 00:08:48,400 และคำตอบสำหรับคำถามที่จะ ส่งผลกระทบต่อการจัดการไฟล์ของคุณ - 148 00:08:48,400 --> 00:08:51,940 ซึ่งไฟล์ที่คุณเปิดที่ คนที่คุณจะปิด 149 00:08:51,940 --> 00:08:55,220 >> จากนั้นมีคุณแล้วพบ JPG? 150 00:08:55,220 --> 00:08:57,740 ท่านได้รับการรักษา ติดตามที่ 151 00:08:57,740 --> 00:09:01,735 จากนั้นขึ้นอยู่กับว่าคุณอาจจะ เขียนลงใน JPG ปัจจุบันที่คุณ 152 00:09:01,735 --> 00:09:07,090 เปิดหรือไม่เขียนมันเลย เพราะคุณไม่ได้พบ JPG ยัง 153 00:09:07,090 --> 00:09:10,870 สุดท้ายเมื่อคุณได้มาถึงจุดสิ้นสุดของ ไฟล์ที่คุณจะต้องการที่จะปิดการใด ๆ 154 00:09:10,870 --> 00:09:12,590 ไฟล์ที่เหลือที่คุณต้องเปิด 155 00:09:12,590 --> 00:09:14,590 เราต้องการที่จะเป็นระเบียบเรียบร้อยที่นี่ 156 00:09:14,590 --> 00:09:18,790 >> และมีที่คุณได้กู้คืนทั้งหมด ไฟล์หายไปจากความทรงจำที่ 157 00:09:18,790 --> 00:09:21,620 การ์ดซึ่งเป็นเพลงน่ารัก 158 00:09:21,620 --> 00:09:23,430 ดังนั้นตัวเองตบเบา ๆ ที่ด้านหลัง 159 00:09:23,430 --> 00:09:27,560 แต่มีองค์ประกอบหนึ่งที่จะ pset ซึ่งเป็นการประกวด 160 00:09:27,560 --> 00:09:30,920 คุณจะพบว่ารูปภาพทั้งหมด ที่คุณได้กู้คืนเป็นจริง 161 00:09:30,920 --> 00:09:32,820 ภาพของพนักงาน CS50 ของ 162 00:09:32,820 --> 00:09:38,500 ดังนั้นถ้าคุณอยู่ในมหาวิทยาลัยหรือที่ใดที่หนึ่ง ใกล้แล้วคุณสามารถถ่ายภาพด้วย 163 00:09:38,500 --> 00:09:42,600 พนักงานและส่วนที่มี ภาพส่วนใหญ่ที่มีพนักงาน 164 00:09:42,600 --> 00:09:46,940 จากไฟล์ที่กู้คืนของพวกเขาจะ ได้รับรางวัลที่น่ากลัว 165 00:09:46,940 --> 00:09:50,650 กับที่แล้วคุณได้ดำเนินการเสร็จสิ้น pset กู้คืน 166 00:09:50,650 --> 00:09:53,600 ชื่อของฉันคือ Zamyla และนี่คือ CS50 167 00:09:53,600 --> 00:10:01,835