>> SPEAKER 1: Pojdimo zdaj popraviti da je zadnji programu.
In ta čas, pa je izrecno dodelila nekatere pomnilnika, v katerem
vhod uporabnikov bodo shranjeni.
To storite tako, dajmo Brus v naprej, da se najprej vrstica kode, kjer smo s prijavljeno
prej, da je char zvezda.
Tokrat gremo ponovno prijavijo je, kot sledi -
znak je nosilec 16, na primer, zaklepaj.
>> Z drugimi besedami, kaj je razglasila, da s ne biti daljši naslov znak,
ampak niz 16 znakov.
Na ta način lahko uporabnik vnesti v višini do 15 znakov in še vedno puščajo prostor za
null terminator.
Pa nadaljujmo do Save, Compile, in Zaženi ta program.
Naredite scanf2 dot slash scanf2.
Pojdimo zdaj vnesite niz kot zdravo, in smo zahvalil za zdravo.
>> Zdaj pa je še vedno problem.
Sem tipkal le v zdravo, ki je le pet znakov, plus 1 za nično
terminator.
To nam ostane le Potreba po šestih bajtov.
>> Ampak na žalost smo le dodeljenih 16 skupaj.
Torej, če uporabnik dejansko vrste v 16. znaki, ali 17, ali nekaj sto
znaki, da smo še vedno ne bo imajo dovolj prostora v pomnilniku
uporabnikov vnos.
In v resnici, to je tisto, kar naredi pridobivanje uporabnik vložek, tako
težko na splošno.
In res, to je, zakaj smo uvedli Funkcija niz spravi v prvi
mesto v knjižnici CS50 -
da ugotovimo, kako ravnati s tistimi, situacije, kjer uporabnik vnese v
več znakov, kot smo sprva pričakovano.
>> Odkrito povedano, ne da bi v celoti reportaža ta program,
ni čisto rešitev.
Namesto, kaj bi morali storiti, je dobil lik iz enemu uporabniku na
Čas, znova in znova.
In na vsaki točki, če se zavedamo, da smo iz spomina, bi morali na
da točka iti nazaj in prerazporedi nekaj več pomnilnika, kopirati uporabnikov
Predhodna vhod iz našega prvega kos spomina v novo,
večji kos pomnilnika.
In potem še enkrat ponoviti, da je proces in Ponovno dokler uporabnik konča z zagotavljanjem
njegov ali njen vhod.