1 00:00:00,000 --> 00:00:00,340 2 00:00:00,340 --> 00:00:01,960 >> SPEAKER 1: اجازه دهید در حال حاضر ثابت که برنامه گذشته است. 3 00:00:01,960 --> 00:00:04,920 و این زمان، اجازه دهید به صراحت اختصاص برخی از حافظه است که در آن 4 00:00:04,920 --> 00:00:06,550 ورودی کاربر ذخیره خواهد شد. 5 00:00:06,550 --> 00:00:09,600 برای این کار، اجازه دهید با سنگ تیز کردن در در که برای اولین بار از خط از کد که در آن ما اعلام بازدید کنندگان 6 00:00:09,600 --> 00:00:11,590 قبلا به یک ستاره کاراکتر. 7 00:00:11,590 --> 00:00:14,210 این بار، اجازه دهید دوباره اعلام آن به شرح زیر است - 8 00:00:14,210 --> 00:00:19,380 کاراکتر ها براکت 16، به عنوان مثال، براکت نزدیک است. 9 00:00:19,380 --> 00:00:23,690 >> به عبارت دیگر، اجازه دهید به هیچ اعلام بازدید کنندگان نمی شود یک آدرس از یک شخصیت، 10 00:00:23,690 --> 00:00:26,610 بلکه مجموعه ای از 16 حرف می باشد. 11 00:00:26,610 --> 00:00:30,295 به این ترتیب، کاربر می تواند در نوع تا 15 شخصیت ها و هنوز هم اتاق را برای ترک 12 00:00:30,295 --> 00:00:31,570 نابودگر تهی. 13 00:00:31,570 --> 00:00:35,870 اجازه دهید در ادامه به ذخیره، تدوین، و اجرای این برنامه است. 14 00:00:35,870 --> 00:00:40,770 را scanf2 scanf2 نقطه بریده بریده. 15 00:00:40,770 --> 00:00:45,100 اکنون بیایید یک رشته نوع مانند سلام، و ما شده برای سلام. 16 00:00:45,100 --> 00:00:46,440 >> در حال حاضر، هنوز هم یک مشکل وجود دارد. 17 00:00:46,440 --> 00:00:50,140 من فقط در سلام تایپ شده است، که تنها پنج شخصیت، به علاوه 1 برای تهی 18 00:00:50,140 --> 00:00:50,445 نابودگر. 19 00:00:50,445 --> 00:00:53,610 این ما را با تنها نیاز به شش بایت. 20 00:00:53,610 --> 00:00:56,740 >> اما متاسفانه، تنها ما در مجموع 16 اختصاص داده است. 21 00:00:56,740 --> 00:01:01,305 بنابراین در صورتی که کاربر در واقع نوع در 16 شخصیت، یا 17، یا چند صد 22 00:01:01,305 --> 00:01:04,410 شخصیت، ما هنوز نه اتاق را به اندازه کافی در حافظه برای 23 00:01:04,410 --> 00:01:05,400 ورودی کاربر است. 24 00:01:05,400 --> 00:01:07,750 و در واقع، این چیزی است که باعث گرفتن ورودی از کاربر تا 25 00:01:07,750 --> 00:01:08,940 دشوار است به طور کلی. 26 00:01:08,940 --> 00:01:12,270 و در واقع، این است که چرا ما اجرا تابع رشته را در اولین 27 00:01:12,270 --> 00:01:13,900 در کتابخانه CS50 - 28 00:01:13,900 --> 00:01:16,900 به شکل از چگونه که مسئولیت رسیدگی به آن موقعیت هایی که کاربر در انواع در 29 00:01:16,900 --> 00:01:19,710 کاراکتر های بیشتری از ما در ابتدا پیش بینی شده. 30 00:01:19,710 --> 00:01:21,750 >> صادقانه بگویم، بدون به طور کامل بازنویسی این برنامه، 31 00:01:21,750 --> 00:01:23,290 هیچ راه حل تمیز وجود دارد. 32 00:01:23,290 --> 00:01:26,970 در عوض، آنچه که ما باید انجام دهیم این است که یک کاراکتر را از کاربر در یک 33 00:01:26,970 --> 00:01:28,860 زمان، دوباره و دوباره. 34 00:01:28,860 --> 00:01:32,510 و در هر نقطه اگر ما متوجه ما از حافظه، ما را به در داشته باشد 35 00:01:32,510 --> 00:01:36,450 آن نقطه بازگشت و دوباره اختصاص برخی از حافظه بیشتر، کپی کاربر 36 00:01:36,450 --> 00:01:39,400 ورودی قبلی از اولین تکه ما از حافظه به جدید، 37 00:01:39,400 --> 00:01:40,810 قطعه بزرگ تر از حافظه است. 38 00:01:40,810 --> 00:01:44,610 و پس از آن که فرایند دوباره تکرار و دوباره تا زمانی که کاربر انجام شده است ارائه 39 00:01:44,610 --> 00:01:45,860 ورودی خود را. 40 00:01:45,860 --> 00:01:48,246