>> SPEAKER 1: Mari kita kini menetapkan bahawa program lepas.
Dan kali ini, mari kita secara jelas memperuntukkan beberapa memori di mana
input pengguna akan disimpan.
Untuk berbuat demikian, mari kita mengasah dalam pada yang pertama baris kod di mana kita diisytiharkan s
sebelum menjadi bintang char.
Kali ini, mari kita semula mengisytiharkan ia seperti berikut -
char s kurungan 16, misalnya, kurungan dekat.
>> Dalam erti kata lain, mari kita mengisytiharkan s untuk tidak lagi menjadi alamat aksara,
tetapi pelbagai 16 aksara.
Dengan cara ini, pengguna boleh menaip sehingga 15 watak-watak dan masih meninggalkan ruang untuk
terminator null.
Mari kita meneruskan untuk Simpan, Menyusun, dan Lari program ini.
Buat scanf2 dot slash scanf2.
Sekarang mari kita menaip rentetan seperti hello, dan kami mengucapkan terima kasih kepada hello ini.
>> Sekarang, masih ada masalah.
Saya hanya ditaip dalam hello, yang hanya lima watak, ditambah 1 untuk nol
terminator.
Ia meninggalkan kita dengan hanya keperluan untuk enam bait.
>> Tetapi malangnya, kami hanya diperuntukkan 16 dalam jumlah.
Jadi jika pengguna sebenarnya jenis dalam 16 aksara, atau 17, atau beberapa ratus
aksara, kami masih tidak akan mempunyai ruang yang cukup dalam memori untuk
input pengguna.
Dan sebenarnya, ini adalah apa yang membuat mendapatkan input pengguna supaya
sukar amnya.
Dan sesungguhnya, ini adalah mengapa kami melaksanakan fungsi tali mendapatkan dalam yang pertama
tempat di perpustakaan CS50 yang -
memikirkan bagaimana untuk mengendalikan mereka situasi di mana jenis pengguna dalam
lebih banyak aksara daripada kita pada mulanya dijangkakan.
>> Terus terang, tanpa benar-benar menulis semula program ini,
tidak ada penyelesaian bersih.
Sebaliknya, apa yang kita perlu lakukan adalah mendapatkan watak dari seorang pengguna pada
masa, lagi dan lagi.
Dan pada setiap mata jika kita sedar kita daripada memori, kita perlu di
ketika itu kembali dalam dan memperuntukkan semula memori yang lebih, menyalin pengguna ini
input sebelumnya dari sebahagian kita yang pertama memori ke dalam baru,
sebahagian besar memori.
Dan kemudian mengulangi proses itu sekali lagi dan lagi sehingga pengguna dilakukan menyediakan
input nya.