精華區beta EE_DSnP 關於我們 聯絡資訊
這部分是老師寫好的函式 按理說是不用改 不過我寫的時候是發現啦 如果你照這樣做會發生奇妙的事情 (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