這部分是老師寫好的函式
按理說是不用改
不過我寫的時候是發現啦
如果你照這樣做會發生奇妙的事情
(1)
cmd>rec1 //輸入
cmd>rec2
cmd>rec3
照這樣輸入之後,假使我按方向鍵上
按理來說會出現
cmd>rec3
再按一次會出現
cmd>rec2
不過呢
如果我在按一次上之後
連續按delete或backspace
把
cmd>rec3刪成cmd> 再按enter的話
在下一個cmd> 我再按上
會跑出來的不是
cmd>rec3
而是
cmd>rec2
我想這並非我們想要的結果
我看了一下addHistory()函式裡的寫法
發現老師本來是寫一段這樣
// add to _history
if (*tmp != 0) {
_history[_historySize++] = tmp;
_history[_historySize].clear();
_historyIdx = _historySize;
}
總之 意思應該是說如果我們輸入空字串的話
那麼history就不會被更新
不過因為把 _historyIdx = _historySize;
這一句放在if區塊裡,就造成查詢history的
index都不會被更新 就造成上面的錯誤了
我把那一句拿到if區塊外是就OK了啦...
話說回來 我覺得這篇文章講的東西
如果不是我自己打的 我一定看不懂...囧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.137.76.127