>> SPEAKER 1: اجازه دهید در حال حاضر ثابت که برنامه گذشته است.
و این زمان، اجازه دهید به صراحت اختصاص برخی از حافظه است که در آن
ورودی کاربر ذخیره خواهد شد.
برای این کار، اجازه دهید با سنگ تیز کردن در در که برای اولین بار از خط از کد که در آن ما اعلام بازدید کنندگان
قبلا به یک ستاره کاراکتر.
این بار، اجازه دهید دوباره اعلام آن به شرح زیر است -
کاراکتر ها براکت 16، به عنوان مثال، براکت نزدیک است.
>> به عبارت دیگر، اجازه دهید به هیچ اعلام بازدید کنندگان نمی شود یک آدرس از یک شخصیت،
بلکه مجموعه ای از 16 حرف می باشد.
به این ترتیب، کاربر می تواند در نوع تا 15 شخصیت ها و هنوز هم اتاق را برای ترک
نابودگر تهی.
اجازه دهید در ادامه به ذخیره، تدوین، و اجرای این برنامه است.
را scanf2 scanf2 نقطه بریده بریده.
اکنون بیایید یک رشته نوع مانند سلام، و ما شده برای سلام.
>> در حال حاضر، هنوز هم یک مشکل وجود دارد.
من فقط در سلام تایپ شده است، که تنها پنج شخصیت، به علاوه 1 برای تهی
نابودگر.
این ما را با تنها نیاز به شش بایت.
>> اما متاسفانه، تنها ما در مجموع 16 اختصاص داده است.
بنابراین در صورتی که کاربر در واقع نوع در 16 شخصیت، یا 17، یا چند صد
شخصیت، ما هنوز نه اتاق را به اندازه کافی در حافظه برای
ورودی کاربر است.
و در واقع، این چیزی است که باعث گرفتن ورودی از کاربر تا
دشوار است به طور کلی.
و در واقع، این است که چرا ما اجرا تابع رشته را در اولین
در کتابخانه CS50 -
به شکل از چگونه که مسئولیت رسیدگی به آن موقعیت هایی که کاربر در انواع در
کاراکتر های بیشتری از ما در ابتدا پیش بینی شده.
>> صادقانه بگویم، بدون به طور کامل بازنویسی این برنامه،
هیچ راه حل تمیز وجود دارد.
در عوض، آنچه که ما باید انجام دهیم این است که یک کاراکتر را از کاربر در یک
زمان، دوباره و دوباره.
و در هر نقطه اگر ما متوجه ما از حافظه، ما را به در داشته باشد
آن نقطه بازگشت و دوباره اختصاص برخی از حافظه بیشتر، کپی کاربر
ورودی قبلی از اولین تکه ما از حافظه به جدید،
قطعه بزرگ تر از حافظه است.
و پس از آن که فرایند دوباره تکرار و دوباره تا زمانی که کاربر انجام شده است ارائه
ورودی خود را.